使用Python在JSON文件中存储项



我有以下JSON文件名为test.json

{"a": ["First letter of alphabet"],"b":["Second letter of alphabet"], "c":["Third letter"]}

我想添加新的值到JSON文件中的字典

import json
data = json.load(open("test.json","r+"))
data["d"] = [str("fourth letter")]
print(data)
上面的代码将以下结果打印到终端
{"a": ["First letter of alphabet"],"b":["Second letter of alphabet"], "c":["Third letter"],"d":["fourth letter"]}

但是我的JSON文件保持不变

{"a": ["First letter of alphabet"],"b":["Second letter of alphabet"], "c":["Third letter"]}

我希望新值像这样存储在JSON文件中

{"a": ["First letter of alphabet"],"b":["Second letter of alphabet"], "c":["Third letter"],"d":["fourth letter"]}

你在变量上添加列,但是为了将新信息保存在json上,你必须覆盖你的json文件或创建一个新的。

的例子:

import json
data = json.load(open("test.json","r+"))
data["d"] = [str("fourth letter")]
with open("test.json", "w") as jsonFile:
# for creating a new file, just rename the test.json to another name
json.dump(data, jsonFile)
或者,就像这里所说的:如何使用python更新json文件,您可以使用seek()将光标移回文件的开头,然后开始写入,然后使用truncate()来处理新数据小于先前的">

的情况。
with open("test.json", "r+") as jsonFile:
data = json.load(jsonFile)
data["d"] = [str("fourth letter")]
jsonFile.seek(0)
json.dump(data, jsonFile)
jsonFile.truncate()

相关内容

  • 没有找到相关文章