【问题标题】:How to implement data rewriting in a json file? [duplicate]如何在json文件中实现数据重写? [复制]
【发布时间】:2022-01-11 16:42:28
【问题描述】:

我有一个 json 文件:

[{dic_1},{dic_2},{dic_3},{dic_4}]

如何在最后以最佳方式将新字典 {dic_5} 添加到文件中以使其工作:

[{dic_1},{dic_2},{dic_3},{dic_4}, {dic_5}] 

同时文件可能为空...

我正在尝试:

with open('path/file.json', "r+") as file:
    json.dump(dic_5, file)

或者这个:

tmp =[]
with open("path/file.json", "r") as f1:
    tmp.append(json.load(f1))
    tmp.append(dic_5)
with open("path/file.json", "w") as f2:
    json.dump(tmp, f2)
    f2.write('\n')

但是不行(只是添加了字典,获取json文件报错,因为没有列表,没有逗号等) 结果是什么,只是不是我需要的:[{},{},{},{},{}]

【问题讨论】:

  • 加载 JSON 文件,将新字典追加到列表中,转储更新的 JSON 文件。
  • 更新并没有使这个问题不重复,它只是提出了两个不同的问题:第一个是重复的,第二个是描述不足(什么错误?)。

标签: python json


【解决方案1】:

json.dump(dic_5, file) 正在转储字典,但不知道该文件有列表。

你需要使用json.load读取文件,它返回一个列表,然后你需要.append(dic_5),之后你可以json.dump(your_list, file)(在open("...", "w")模式下,这样你就可以有效地覆盖文件内容有一个新列表)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-06
    • 1970-01-01
    • 2010-12-11
    • 2018-07-14
    • 1970-01-01
    • 1970-01-01
    • 2012-11-12
    • 1970-01-01
    相关资源
    最近更新 更多