将Python字典转换为kwargs?

tea*_*cat 279 python dictionary kwargs

我想使用类继承为sunburnt(solr接口)构建一个查询,从而将键 - 值对添加到一起.sunburnt接口采用关键字参数.如何将dict ({'type':'Event'})转换为关键字参数(type='Event')

unu*_*tbu 490

使用双星(又名double-splat?)运算符:

func(**{'type':'Event'})
Run Code Online (Sandbox Code Playgroud)

相当于

func(type='Event')
Run Code Online (Sandbox Code Playgroud)

  • 如果你已经有一个名为"myDict"的dict对象,你只需要`func(**myDict)`.我`myDict = {"type":"event"}` (73认同)
  • 这在python标准文档中已经很好地介绍了.另见:http://stackoverflow.com/questions/1137161.(DMID:// juice_cobra_hush) (2认同)

Ben*_*res 9

这是一个完整的示例,展示了如何使用**运算符将字典中的值作为关键字参数传递。

>>> 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
Run Code Online (Sandbox Code Playgroud)


Vis*_*hak 6

** 运算符在这里会有所帮助。

**操作员将解压缩dict元素,因此**{'type':'Event'}将被视为type='Event'

func(**{'type':'Event'})func(type='Event')dict元素将转换为相同keyword arguments

费耶

*将解压缩列表元素,并将其视为positional arguments

func(*['one', 'two']) 与...相同 func('one', 'two')