python tutorial - JSON.DUMP(S) & JSON.LOAD(S) - learn python - python programming
json.dumps() & json.loads()
- In this tutorial, we'll convert Python dictionary to JSON and write it to a text file. Then, we'll read in back from the file and play with it.
Initially we'll construct Python dictionary like this:
# Four Fundamental Forces with JSON
d = {}
d ["gravity"] = {
"mediator":"gravitons",
"relative strength" : "1",
"range" : "infinity"
}
d ["weak"] = {
"mediator":"W/Z bosons",
"relative strength" : "10^25",
"range" : "10^-18"
}
d ["electromagnetic"] = {
"mediator":"photons",
"relative strength" : "10^36",
"range" : "infinity"
}
d ["strong"] = {
"mediator":"gluons",
"relative strength" : "10^38",
"range" : "10^-15"
}
print(d)
click below button to copy the code. By Python tutorial team
The output looks like this:
{'electromagnetic': {'relative strength': '10^36', 'range': 'infinity', 'mediator': 'photons'}, 'strong': {'relative strength': '10^38', 'range': '10^-15', 'mediator': 'gluons'}, 'weak': {'relative strength': '10^25', 'range': '10^-18', 'mediator': 'W/Z bosons'}, 'gravity': {'relative strength': '1', 'range': 'infinity', 'mediator': 'gravitons'}}
Now, we want to convert the dictionary to a string using json.dumps:
import json
data = json.dumps(d)
print(type(data))
print(data)
click below button to copy the code. By Python tutorial team
Output:
<type 'str'>
{"electromagnetic": {"relative strength": "10^36", "range": "infinity", "mediator": "photons"}, "strong": {"relative strength": "10^38", "range": "10^-15", "mediator": "gluons"}, "weak": {"relative strength": "10^25", "range": "10^-18", "mediator": "W/Z bosons"}, "gravity": {"relative strength": "1", "range": "infinity", "mediator": "gravitons"}}
- Note that the "json.dumps()" returns a string as indicated by the "s" at the end of "dumps". This process is called encoding.
Let's write it to a file:
import json
data = json.dumps(d)
with open("4forces.json","w") as f:
f.write(data)
click below button to copy the code. By Python tutorial team
Now that the file is written. Let's reads it back and decoding the JSON-encoded string back into a Python dictionary data structure:
# reads it back
with open("4forces.json","r") as f:
data = f.read()
# decoding the JSON to dictionay
d = json.loads(data)
click below button to copy the code. By Python tutorial team
- Let's play with the dictionary a little bit.
What's the relative strength of electromagnetic compared to gravity?
print(d["electromagnetic"]["relative strength"])
10^36
click below button to copy the code. By Python tutorial team
Who's the mediator for "strong" force?
print(d["strong"]["mediator"])
gluons
click below button to copy the code. By Python tutorial team
- Ok, here is the full code:
# Four Fundamental Forces with JSON
d = {}
d ["gravity"] = {
"mediator":"gravitons",
"relative strength" : "1",
"range" : "infinity"
}
d ["weak"] = {
"mediator":"W/Z bosons",
"relative strength" : "10^25",
"range" : "10^-18"
}
d ["electromagnetic"] = {
"mediator":"photons",
"relative strength" : "10^36",
"range" : "infinity"
}
d ["strong"] = {
"mediator":"gluons",
"relative strength" : "10^38",
"range" : "10^-15"
}
import json
# encoding to JSON
data = json.dumps(d)
# write to a file
with open("4forces.json","w") as f:
f.write(data)
# reads it back
with open("4forces.json","r") as f:
data = f.read()
# decoding the JSON to dictionay
d = json.loads(data)
print(d)
click below button to copy the code. By Python tutorial team
If we prefer working with files instead of strings, we may want to use json.dump() / json.load() to encode / decode JSON data:
# write to a file
with open("4forces.json","w") as f:
json.dump(d, f)
# reads it back
with open("4forces.json","r") as f:
d = json.load(f)