在使用json.dump()
时,我注意到它似乎在重写整个文档。这是正确的吗?还有没有其他方法可以像.append()
deos那样用列表附加到字典中
当我像这样编写函数并更改键值(name)时,似乎该项被追加了
filename = "infohere.json"
name = "Bob"
numbers = 20
#Write to JSON
def writejson(name = name, numbers = numbers):
with open(filename, "r") as info:
xdict = json.load(info)
xdict[name] = numbers
with open(filename, "w") as info:
json.dump(xdict, info)
但是,当您这样写出来时,您可以看到代码清楚地覆盖了整个dictionary/json文件
filename = infohere.json
dict = {"Bob":23, "Mark":50}
dict2 = {Ricky":40}
#Write to JSON
def writejson2(dict):
with open(filehere, "w") as info:
json.dump(dict, info)
writejson(dict)
writejson(dict2)
在第二个示例中,它只显示最后一个日期输入,这让我相信这是在重写整个文档。如果它在每个json.dump
期间写入整个文档,这是否会导致更大的json文件出现问题,如果是这样的话,还有另一种方法,如.append(),但用于处理json
提前谢谢
都不是
json.dump
在写入文件时不决定是否删除以前的内容。当您运行open(filehere, "w")
时,就会发生该决定这就是删除旧内容的方法但是:普通的JSON不适合附加
单个JSON文档是一个对象。这种格式有多种变体,允许在一个文件中包含多个文档,其中最常见的是JSONL(每行有一个JSON文档)。除非您使用这种格式,否则尝试将JSON附加到非空文件通常不会导致成功解析的结果
相关问题 更多 >
编程相关推荐