我想使用类继承为sunburnt(solr接口)构建一个查询,从而将键值对添加到一起。sunburnt接口接受关键字参数。如何将dict ({'type':'Event'})转换为关键字参数(type='Event')?
- 你在使用什么教程?这在大多数教程中都有很好的介绍。
使用双星(又名双星?)操作员:
1
| func(**{'type':'Event'}) |
等于
- 如果你已经有了一个名为"mydict"的dict对象,你只需要func(**myDict),即myDict = {"type":"event"}。
- 这在Python标准文档中有很好的介绍。另请参见:stackoverflow.com/questions/1137161。(dmid://juice眼镜蛇)
- 这是非常有用的,尤其是在使用将字典转换为自夸模型实例时。谢谢。
**操作符在这里很有用。
**操作符将解包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 |