关于dict:将python dict转换为kwargs?

Converting Python dict to kwargs?

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


使用双星(又名双星?)操作员:

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

等于

1
func(type='Event')


**操作符在这里很有用。

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

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

供参考

*将解包list元素,它们将被视为positional arguments

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


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

1
2
3
4
5
6
7
8
9
10
>>> def f(x=2):
...     print(str(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