首页 > 解决方案 > 在Python中将同名的键添加到嵌套字典中

问题描述

我正在处理一个小问题。所以我想要一个看起来像这个 json 文件的字典

{"matches":[
    {"gameId":2585563902,"platformId":"NA1"},
    {"gameId":2412534524,"platformId":"NA1"},
    {"gameId":2412534524,"platformId":"NA1"}
]}

如您所见,关键元素具有相同的名称,但具有不同的值。

问题是如果不添加包含每个键和值的计数器,我就无法在 python 中做同样的事情。例如,我想为匹配创建 10 个键,其中包含 gameId 键和 platformId 键,代码如下所示

myDict = {}
myDict["matches"] = {}
for a in range (10):
    myDict["matches"][a] = {}
    myDict["matches"][a]["gameId"] = a
    myDict["matches"][a]["platformId"] = a

返回这个

{'matches': {
0: {'gameId': 0, 'accountId': 0}, 
1: {'gameId': 1, 'accountId': 1}, 
2: {'gameId': 2, 'accountId': 2}
}}

虽然我了解 json 文件也使用相同形式的计数器但“不可见”,但我想知道是否可以在 python3 中做同样的事情

或者也许我的推理是错误的?

标签: pythondictionarynested

解决方案


您的代码片段正在制作字典字典,而我假设您希望它制作字典列表。你可以做这样的事情。

myDict = {}
myDict["matches"] = []
for a in range (10):
    innerDict = {"gameId":a, "platformId":a}
    myDict["matches"].append(innerDict)

最后,如果你想把它作为一个实际的 json,你可以使用 json 标准库并使用 dumps 方法来制作一个 json 对象

obj = json.dumps(myDict)

推荐阅读