如何在JSON中将指定字典重复多次添加至列表并输出?
生成包含重复字典的JSON列表解决方案
问题说明
需要将指定字典重复5次后放入列表,生成符合要求的JSON结构。原代码直接循环写入单个字典,导致输出格式不符合预期:
原代码
dict = { "text":"Hi", "feedback":"" } for i in range(0,5): json.dump(dict, file)
当前错误输出结构
"items": [ { "text": "Hi", "feedback": "" } ]
期望输出结构
"items": [ { "text": "Hi", "feedback": "" }, { "text": "Hi", "feedback": "" }, { "text": "Hi", "feedback": "" }, { "text": "Hi", "feedback": "" }, { "text": "Hi", "feedback": "" } ]
正确实现方案
核心思路
- 先构建完整的JSON数据结构:外层字典包含
items键,值为重复5次的目标字典组成的列表 - 一次性将整个结构写入文件,避免循环写入单个JSON对象导致格式错误
- 避免使用
dict作为变量名,防止覆盖Python内置类型
正确代码
import json # 定义模板字典,规避内置关键字命名冲突 template_item = { "text": "Hi", "feedback": "" } # 构建符合要求的完整数据结构 data = { "items": [template_item.copy() for _ in range(5)] } # 写入文件,indent参数用于格式化输出,增强可读性 with open("output.json", "w", encoding="utf-8") as f: json.dump(data, f, indent=4)
代码说明
- 使用列表推导式
[template_item.copy() for _ in range(5)]生成5个独立的字典实例(若字典包含可变对象,必须用copy避免所有元素指向同一内存地址) - 外层包裹
{"items": ...}结构,确保输出符合指定JSON格式 - 用
with语句管理文件,自动处理文件关闭逻辑 indent=4让输出的JSON自动格式化,与期望结构完全匹配
内容的提问来源于stack exchange,提问作者nani
相关产品推荐
相关产品推荐

