python - 在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 中做同样的事情
或者也许我的推理是错误的?
解决方案
您的代码片段正在制作字典字典,而我假设您希望它制作字典列表。你可以做这样的事情。
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)
推荐阅读
- json - jq simple json object merge/combination
- swagger - 在 Foxx 中使用组合框创建查询参数
- java - Spring 和 RESTfull ConcurrentModel 不支持 null 属性值
- java - 我可以从模型层呼叫演示者吗?
- android - RecyclerView 上的 Espresso 测试滚动行为在模拟器中不起作用
- javascript - 在 Odoo 10 中单击树视图的字段时如何执行某些操作?
- python - 在不加载多个 .npy 文件的情况下获取向量的长度
- javascript - 在不使用 css 网格和不使用 css flex 的情况下创建类似的东西
- java - 如何在活动首次启动时停止广播接收器被触发
- python - 在 Pandas 的继承树中查找第一个祖先