我正在编写一系列脚本,这些脚本将来自多服务器的字典结合在一起,用于我运行的游戏,因此我可以看到每个人在它们之间的表现。我想将所有词典合并在一起以获得一个“总计”。问题是字典是字符串、整数None、 和嵌套字典的组合。它也变得有点复杂。['Names'] 可以是多个东西。根ID是实际玩家的唯一ID,玩家可以多次更改。它很复杂,因为出于某种原因,这些键是整数,而不是字符串……所以这也有点奇怪。无论如何,我只是想弄清楚如何尽可能地将这些文件中的 3 个组合在一起。我研究过使用计数,但很明显,一旦有嵌套的字典和字符串,它就会消失。
1 回答
幕布斯6054654
TA贡献1876条经验 获得超7个赞
您可以尝试递归策略,假设任何给定键的所有字典中的类型都相同:
import copy
def combine_dicts(first, other):
first = copy.deepcopy(first)
for k, v in other.items():
if k not in first:
first[k] = v
else:
if type(v) == dict:
first[k] = combine_dicts(first[k], v)
elif type(v) == int:
first[k] += v
return first
对于字符串值,您需要更具体地了解您想要的行为。级联?鉴于您提供的数据,这似乎不正确。
添加回答
举报
0/150
提交
取消