475 Stimmen

Konvertierung von Python dict in kwargs?

Ich möchte eine Abfrage für sunburnt (Solr-Schnittstelle) erstellen, indem ich Klassenvererbung verwende und daher Schlüssel-Wert-Paare zusammenfüge. Die sunburnt-Schnittstelle nimmt Schlüsselwortargumente entgegen. Wie kann ich ein dict umwandeln? ({'type':'Event'}) in Schlüsselwortargumente umwandeln (type='Event') ?

839voto

unutbu Punkte 769083

Verwenden Sie die Doppelstern (alias Double-Splat? ) Betreiber:

func(**{'type':'Event'})

ist gleichbedeutend mit

func(type='Event')

49voto

Vishvajit Pathak Punkte 2773

** Operator wäre hier hilfreich.

** Operator packt die dict-Elemente aus und damit **{'type':'Event'} würde behandelt werden als type='Event'

func(**{'type':'Event'}) ist identisch mit func(type='Event') d.h. die dict-Elemente würden in die keyword arguments .

ZU IHRER INFORMATION

* packt die Listenelemente aus und sie werden als positional arguments .

func(*['one', 'two']) ist identisch mit func('one', 'two')

18voto

Ben Mares Punkte 1016

Hier ist ein vollständiges Beispiel, das zeigt, wie man die ** Operator, um Werte aus einem Wörterbuch als Schlüsselwortargumente zu übergeben.

>>> def f(x=2):
...     print(x)
... 
>>> new_x = {'x': 4}
>>> f()        #    default value x=2
2
>>> f(x=3)     #   explicit value x=3
3
>>> f(**new_x) # dictionary value x=4 
4

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X