jum*_*947 5 python json dictionary
我正在尝试合并两个json词典.到目前为止,我有一个带有内容的json文件(myjfile.json)
{"cars": 01, "houses": 02, "schools": 03, "stores": 04}
Run Code Online (Sandbox Code Playgroud)
我在python中有一个字典(mydict),如下所示:
{"Pens": 1, "Pencils": 2, "Paper": 3}
Run Code Online (Sandbox Code Playgroud)
当我把它们结合起来时,它们是两个不同的词典
with open('myfile.json' , 'a') as f:
json.dump(mydict, f)
Run Code Online (Sandbox Code Playgroud)
请注意,因为我要保持文件的内容,并开始新的一行中其被写入时间的myfile.json,正被写入"A",并在代码A/N.
我希望最终结果看起来像
{"cars": 01, "houses": 02, "schools": 03, "stores": 04, "Pens": 1, "Pencils": 2, "Paper": 3}
Run Code Online (Sandbox Code Playgroud)
Ant*_*pov 12
IIUC你需要加入dicts,你可以用update:
a = {"cars": 1, "houses": 2, "schools": 3, "stores": 4}
b = {"Pens": 1, "Pencils": 2, "Paper": 3}
a.update(b)
print(a)
Run Code Online (Sandbox Code Playgroud)
输出看起来像:
{'Paper': 3, 'cars': 1, 'Pens': 1, 'stores': 4, 'Pencils': 2, 'schools': 3, 'houses': 2}
Run Code Online (Sandbox Code Playgroud)
要创建全新的dict无触摸,a您可以:
out = dict(list(a.items()) + list(b.items()))
print(out)
{'Paper': 3, 'cars': 1, 'Pens': 1, 'stores': 4, 'Pencils': 2, 'schools': 3, 'houses': 2}
Run Code Online (Sandbox Code Playgroud)
编辑
对于你的情况你可以加载你json的json.load更新它,然后保存它json.dump:
mydict = {"Pens": 1, "Pencils": 2, "Paper": 3}
with open('myfile.json' , 'r+') as f:
d = json.load(f)
d.update(mydict)
f.seek(0)
json.dump(d, f)
Run Code Online (Sandbox Code Playgroud)