Write in json file with Python
本问题已经有最佳答案,请猛点这里访问。
对于一个项目,我需要用python编写一个JSON文件,但是我所看到的(json.dump)与我想做的不匹配…
我有一个结构,我只想在里面添加一些东西。我想添加一个带有输入的服务,例如:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | { "Serial_011":"011", "Servers_011": [ { "hostname":"srv-a.11", "ipv4_address":"0.0.0.0", "services": [ { "uri":"http://www.google.fr/1", "expected_code": 200 }, { "uri":"http://www.google.fr/2", "expected_code": 200 } ] }, { "hostname":"nsc-srv-b.11", "ipv4_address":"0.0.0.0", "services": [ { "uri":"http://www.google.fr/3", "expected_code": 200 }, { "uri":"http://www.google.fr/4", "expected_code": 200 } ] } ] } |
提前谢谢
在使用Python中的JSON对象时,我会记住4个方法。
json.dumps() —给出了由python dict对象形成的json的字符串表示形式。json.dump( , —在文件对象中写入JSON文件) json.loads() —从字符串中读取JSON对象json.load() —从文件中读取JSON对象。
接下来要记住的一点是,Python中的
所以我们假设,文件内容驻留在一个文件
下面的代码应该能够完成这项工作
1 2 3 4 5 6 7 8 9 | import json existing = json.load(open("/tmp/existing.json","r")) addThis = json.load(open("/tmp/addThis.json","r")) for key in addThis.keys(): existing[key] = addThis[key] json.dump(exist,open("/tmp/combined.json","w"),indent=4) |
编辑:假设adds的内容不在文件中,而是从控制台读取。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | import json existing = json.load(open("/tmp/existing.json","r")) addThis = input() # paste your json here. # addThis is now simply a string of the json content of what you to add addThis = json.loads(addThis) #converting a string to a json object. # keep in mind we are using loads and not load for key in addThis.keys(): existing[key] = addThis[key] json.dump(exist,open("/tmp/combined.json","w"),indent=4) |