For a project I need to write in a json file with python but all I have already seen (json.dump) don't match with what I want to do...
I have a structure and I just want to add something inside. I want to add a service with a input for example :
{
"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
}
]
}
]
}
Thanks in advance
I keep in mind 4 methods while I work with JSON objects in python.
json.dumps(<a python dict object>)
- gives a string representation of json formed out of the python dict objectjson.dump( <a python dict object>,<file obj>)
- writes a json file in file objectjson.loads(<a string>)
- reads a json object from a stringjson.load(<a json file>)
- reads a json object from the file.The next important thing to keep in mind is that json
's and dict
in python are equivalent.
So let us say, the file contents reside inside a file addThis.json
.
You have a already existing json object inside the file existing.json
.
The below code should be able to do the job
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)
Edit: Assuming the contents of the addThis is not in a file but is to be read from the console.
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)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With