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')
?
Antworten
Zu viele Anzeigen?Verwenden Sie die Doppelstern (alias Double-Splat? ) Betreiber:
func(**{'type':'Event'})
ist gleichbedeutend mit
func(type='Event')
**
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')
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