Python 扁平化词典

Python 扁平化词典,python,Python,如何将Python中的口述词典展平,并将它们放入列表中?例如,假设我有以下命令: data = { id1 : {x: 1, y: 2, z: 3}, id2 : {x: 4, y: 5, z: 6}} 如何获得: [{id: id1, x: 1, y: 2, z: 3}, {id: id2, x: 4, y: 5, z: 6}] 使用python 3.5及更高版本 >>> data = { 'id1' : {'x': 1, 'y': 2, 'z': 3}, 'id2' :

如何将Python中的口述词典展平,并将它们放入列表中?例如,假设我有以下命令:

data = { id1 : {x: 1, y: 2, z: 3}, id2 : {x: 4, y: 5, z: 6}}
如何获得:

[{id: id1, x: 1, y: 2, z: 3}, {id: id2, x: 4, y: 5, z: 6}]

使用python 3.5及更高版本

>>> data = { 'id1' : {'x': 1, 'y': 2, 'z': 3}, 'id2' : {'x': 4, 'y': 5, 'z': 6}}
>>> [{**v, 'id':k} for k,v in data.items()]
[{'x': 1, 'y': 2, 'z': 3, 'id': 'id1'}, {'x': 4, 'y': 5, 'z': 6, 'id': 'id2'}]
在较旧的python版本上

>>> [dict(v, id=k) for k,v in data.iteritems()]
[{'x': 1, 'y': 2, 'z': 3, 'id': 'id1'}, {'x': 4, 'y': 5, 'z': 6, 'id': 'id2'}]
>>> 

使用python 3.5及更高版本

>>> data = { 'id1' : {'x': 1, 'y': 2, 'z': 3}, 'id2' : {'x': 4, 'y': 5, 'z': 6}}
>>> [{**v, 'id':k} for k,v in data.items()]
[{'x': 1, 'y': 2, 'z': 3, 'id': 'id1'}, {'x': 4, 'y': 5, 'z': 6, 'id': 'id2'}]
在较旧的python版本上

>>> [dict(v, id=k) for k,v in data.iteritems()]
[{'x': 1, 'y': 2, 'z': 3, 'id': 'id1'}, {'x': 4, 'y': 5, 'z': 6, 'id': 'id2'}]
>>> 

@Dillanm-simple可能重复,但不是真正的重复。@Dillanm-simple可能重复,但不是真正的重复。对于旧版本,应使用
iterms()
而不是
items()
。对于旧版本,应使用
iterms()
而不是
items()