Python中如何将多个JSON对象合并输出为单个主JSON块
问题原因
你代码输出数组结构JSON的核心问题是初始将data定义为了列表类型,循环中每次向列表追加独立的单键字典,序列化后外层自然是数组结构,和你需要的单根对象结构不匹配。
修改方法
直接把data初始化为字典而非列表,循环中直接为字典添加键值对即可,不需要调用append方法,修改后的完整代码:
import json PARENTS = ["parent1", "parent2"] data = {} for parent in PARENTS: data[parent] = { "child1": "value1", "child2": "value2" } with open("file.json", "w") as f: json.dump(data, f, indent=4)
运行后生成的JSON文件和你预期的格式完全一致:
{ "parent1": { "child1": "value1", "child2": "value2" }, "parent2": { "child1": "value1", "child2": "value2" } }
注意:不要用先存列表再合并字典的绕路写法,直接初始化字典赋值的写法执行效率更高,代码也更简洁易读。
内容的提问来源于stack exchange,提问作者cttrader
相关产品推荐
相关产品推荐

