如何使用Python向JSON列表添加数据?代码运行异常排查
问题分析与解决
错误原因
list.append()是原地修改列表,它的返回值是None,你把这个返回值赋值给change再写入文件,就会输出null。- 使用
r+模式打开文件时,读取完内容后文件指针停在文件末尾,直接写入会把新内容追加到原内容后面,而不是替换原文件。
修正后的代码
import json id = 1234 # 先读取文件内容 with open("values.json", "r") as file: data = json.load(file) # 修改数据(append原地修改,不需要接收返回值) data["values"].append(id) # 重新写入文件,用w模式覆盖原内容 with open("values.json", "w") as file: json.dump(data, file, indent=4)
说明
- 分两次打开文件:第一次只读模式读取数据,第二次写入模式覆盖原文件,避免指针位置问题。
- 直接调用
data["values"].append(id)即可,不需要接收返回值,因为append已经修改了原列表。 - 加上
indent=4可以让输出的JSON保持格式化,和原文件风格一致。
运行后你的JSON文件就会变成期望的:
{ "values": [323123, 1234] }
内容的提问来源于stack exchange,提问作者julius28
相关产品推荐
相关产品推荐

