如何将objects / dict(?)属性传播到新的object / dict?
简单的Javascript:
const obj = {x: '2', y: '1'}
const thing = {...obj, x: '1'}
// thing = {x: '1', y: 1}
的Python:
regions = []
for doc in locations_addresses['documents']:
regions.append(
{
**doc, # this will not work
'lat': '1234',
'lng': '1234',
}
)
return json.dumps({'regions': regions, 'offices': []})
答案 0 :(得分:13)
如果您有Python >=3.5,则可以在dict
字面值中使用关键字扩展:
>>> d = {'x': '2', 'y': '1'}
>>> {**d, 'x':1}
{'x': 1, 'y': '1'}
这有时被称为" splatting"。
如果您使用的是Python 2.7,那么就没有相应的内容。这是使用7年以上的东西的问题。你必须做类似的事情:
>>> d = {'x': '2', 'y': '1'}
>>> x = {'x':1}
>>> x.update(d)
>>> x
{'x': '2', 'y': '1'}
答案 1 :(得分:2)
您可以通过基于原始版本创建dict
,然后为新/覆盖键进行参数解包来实现此目的:
regions.append(dict(doc, **{'lat': '1234', 'lng': '1234'}))