如何将键:值对添加到 JSON?

时间:2021-05-30 18:18:03

标签: python json dictionary

我有以下结构的 JSON 文件:
{'1234': 'ABC', '2345': 'BCD', '3456': 'CDE'}

我想将键值对:{'4567': 'DEF'} 附加到这个 JSON 文件中,使其看起来像:
{'1234': 'ABC', '2345': 'BCD', '3456': 'CDE', '4567': 'DEF'}

这是我的代码,但它添加了 key: value 对作为另一个类似结构的字典:

new_data = {'4567': 'DEF}
j = json.dumps(new_data)
with open('hashDir.json','r+') as file:
       file.write(j)
       file.close()

2 个答案:

答案 0 :(得分:0)

import json

new_data = {'4567': 'DEF'}

with open("hashDir.json", "r+") as file:
    data = json.load(file)
    data.update(new_data)
    file.seek(0)
    json.dump(data, file)

答案 1 :(得分:0)

Sudipto 的解决方案简短而甜蜜,假设您要修改原始文件。 以防万一您不这样做,或者如果您出于任何原因想要将读取和写入分开,这里有一个稍微不同的选项:

import json

with open('hashDir.json', 'r') as f:
  json_dict = json.load(f)

new_data = {"4567": "DEF"}
json_dict.update(new_data)

with open('hashDir.json', 'w') as f:
  f.write(json.dumps(json_dict))

...这是假设您只有一个非常轻的文件,例如您上面描述的那个。当然,如果您只想替换原始文件,您可以使用 Sudipto 的解决方案,或者您可以在第二个 with 中为该文件指定相同的名称。

相关问题