<p>您可以使用一个简单的递归函数来更新字典(node:I将键值对添加到输入中的空字典中,以反映下面代码所做的实际更改):</p>
<pre><code>d = {'Head': {'Face': {'Eyes': {'Eyebrows': {}, 'Eyelids': {'Eyelashes': {}}}, 'Nose': {}, 'Mouth': {}}}}
dict2 = {'Eyes':
{'Eyebrows': {"color":'brown'},
'Eyelids':
{'Eyelashes': {"type":"long", "color":"black"}
}
}
}
def update_dict(d, update_with):
if not any(i in update_with for i in d):
return {a:update_dict(b, update_with) if isinstance(b, dict) else b for a, b in d.items()}
return {a:update_dict(b, update_with if a not in update_with else update_with[a]) if isinstance(b, dict) and b \
else update_with.get(a, b) for a, b in d.items()}
</code></pre>
<hr/>
<pre><code>import json
print(json.dumps(update_dict(d, dict2), indent=4))
</code></pre>
<p>输出:</p>
<pre><code>{
"Head": {
"Face": {
"Eyes": {
"Eyebrows": {
"color": "brown"
},
"Eyelids": {
"Eyelashes": {
"type": "long",
"color": "black"
}
}
},
"Nose": {},
"Mouth": {}
}
}
}
</code></pre>