如何在python中合并两个数据结构
Posted
技术标签:
【中文标题】如何在python中合并两个数据结构【英文标题】:how to merge two data structure in python 【发布时间】:2015-09-11 23:35:22 【问题描述】:我有两个复杂的数据结构(即 _to 和 _from),我想用 _from 的相同实体覆盖 _to 的实体。 我已经给出了这个例子。
# I am having two data structure _to and _from
# I want to override _to from _from
_to = 'host': 'test',
'domain': [
'ssl': 0,
'ssl_key': '',
],
'x':
_from = 'status': 'on',
'domain': [
'ssl': 1,
'ssl_key': 'Xpyn4zqJEj61ChxOlz4PehMOuPMaxNnH5WUY',
'ssl_cert': 'nuyickK8uk4VxHissViL3O9dV7uGSLF62z52L4dAm78LeVdq'
]
### I want this output
_result = 'host': 'test',
'status': 'on',
'domain': [
'ssl': 1,
'ssl_key': 'Xpyn4zqJEj61ChxOlz4PehMOuPMaxNnH5WUY',
'ssl_cert': 'nuyickK8uk4VxHissViL3O9dV7uGSLF62z52L4dAm78LeVdq'
],
'x':
用例 2:
_to = 'host': 'test',
'domain': [
'ssl': 0,
'ssl_key': '',
'ssl_cert': 'nuyickK8uk4VxHissViL3O9dV7uGSLF62z52L4dAm78LeVdq',
"abc": [],
'https': 'no'
],
'x':
_from =
'domain': [
'ssl': 1,
'ssl_key': 'Xpyn4zqJEj61ChxOlz4PehMOuPMaxNnH5WUY',
'ssl_cert': 'nuyickK8uk4VxHissViL3O9dV7uGSLF62z52L4dAm78LeVdq'
]
dict.update(dict2) 对我没有帮助,因为这会删除 _to dict 中的额外键。
【问题讨论】:
Python append dictionary to dictionary 的可能重复项 谢谢,我用谷歌搜索了它,但没有找到相同的页面。感谢您的帮助 【参考方案1】:很简单:
_to.update(_from)
【讨论】:
@user87005 - 对于用例 2(您在我发布答案后添加),尚不清楚在列表级别应该发生什么 - 如果应该合并、更新列表(根据哪些标准)。【参考方案2】:有一个陷阱如下:
_to = 'host': 'test',
'domain': [
'ssl': 0,
'ssl_key': '',
],
'x':
_from = 'status': 'on',
'domain': [
'ssl': 1,
'ssl_cert': 'nuyickK8uk4VxHissViL3O9dV7uGSLF62z52L4dAm78LeVdq'
]
_to['domain']['ssl_key']
_to.update(_from)
时省略
如果你想深入更新,请查看Update value of a nested dictionary of varying depth
【讨论】:
所需的输出在问题中。 查看帖子:) 我在@user87005 之前遇到过同样的问题以上是关于如何在python中合并两个数据结构的主要内容,如果未能解决你的问题,请参考以下文章