I'm new to python and json files and I have a json file which has only one attribute and I want to update each object in the file by adding a new attribute, my json file looks like:
[
{"marka": "تويوتا"},
{"marka": "شيفروليه"},
{"marka": "نيسان"}
]
and I want it to be something like:
[
{"marka": "تويوتا" , "tag" : "MANF"},
{"marka": "شيفروليه" , "tag" : "MANF"},
{"marka": "نيسان" , "tag" : "MANF"}
]
I tried this code but it gives me an error:
with open["haraj_marka_arabic.json", "r"] as jsonFile:
data = json.load[jsonFile]
tmp = data["tag"]
data["tag"] = "MANF"
with open["haraj_marka_arabic.json", "w"] as jsonFile:
json.dump[data, jsonFile]
The error I had is:
TypeError: list indices must be integers, not str
View Discussion
Improve Article
Save Article
View Discussion
Improve Article
Save Article
The full form of JSON is JavaScript Object Notation. It means that a script [executable] file which is made of text in a programming language, is
used to store and transfer the data. Python supports JSON through a built-in package called JSON. To use this feature, we import the JSON package in Python script. The text in JSON is done through quoted-string which contains the value in key-value mapping within { }.
Functions Used:
- json.loads[]: json.loads[] function is present in python built-in ‘json’ module. This function is used to parse the JSON
string.
Syntax: json.loads[json_string]
Parameter: It takes JSON string as the parameter.
Return type: It returns the python dictionary object.
- json.dumps[]: json.dumps[] function is present in python built-in ‘json’ module. This function is used to convert Python object into JSON string.
Syntax: json.dumps[object]
Parameter: It takes Python Object as the parameter.
Return type: It returns the JSON string.
- update[]: This method updates the dictionary with elements from another dictionary object or from an iterable key/value pair.
Syntax: dict.update[[other]]
Parameters: Takes another dictionary or an iterable key/value pair.
Return type: Returns None.
Example 1: Updating a JSON string.
Python3
import
json
x
=
'{
"organization"
:
"GeeksForGeeks"
,
"city"
:
"Noida"
,
"country"
:
"India"
}'
y
=
{
"pin"
:
110096
}
z
=
json.loads[x]
z.update[y]
print
[json.dumps[z]]
Output:
{“pin”: 110096, “organization”: “GeeksForGeeks”, “country”: “India”, “city”: “Noida”}
Example 2: Updating a JSON file. Suppose the JSON file looks like this.
We want to add another JSON data after emp_details. Below is the implementation.
Python3
import
json
def
write_json[new_data, filename
=
'data.json'
]:
with
open
[filename,
'r+'
] as
file
:
file_data
=
json.load[
file
]
file_data[
"emp_details"
].append[new_data]
file
.seek[
0
]
json.dump[file_data,
file
, indent
=
4
]
y
=
{
"emp_name"
:
"Nikhil"
,
"email"
:
""
,
"job_profile"
:
"Full Time"
}
write_json[y]
Output: