How do you add a value to a json object in python?

First, accidents is a dictionary, and you can't write to a dictionary; you just set values in it.

So, what you want is:

for accident in accidents:
    accident['Turn'] = 'right'

The thing you want to write out is the new JSON—after you've finished modifying the data, you can dump it back to a file.

Ideally you do this by writing to a new file, then moving it over the original:

with open['sanfrancisco_crashes_cp.json'] as json_file:
    json_data = json.load[json_file]
accidents = json_data['accidents']
for accident in accidents:
    accident['Turn'] = 'right'
with tempfile.NamedTemporaryFile[dir='.', delete=False] as temp_file:
    json.dump[temp_file, json_data]
os.replace[temp_file.name, 'sanfrancisco_crashes_cp.json']

But you can do it in-place if you really want to:

# notice r+, not rw, and notice that we have to keep the file open
# by moving everything into the with statement
with open['sanfrancisco_crashes_cp.json', 'r+'] as json_file:
    json_data = json.load[json_file]
    accidents = json_data['accidents']
    for accident in accidents:
        accident['Turn'] = 'right'
    # And we also have to move back to the start of the file to overwrite
    json_file.seek[0, 0]
    json.dump[json_file, json_data]
    json_file.truncate[]

If you're wondering why you got the specific error you did:

In Python—unlike many other languages—assignments aren't expressions, they're statements, which have to go on a line all by themselves.

But keyword arguments inside a function call have a very similar syntax. For example, see that tempfile.NamedTemporaryFile[dir='.', delete=False] in my example code above.

So, Python is trying to interpret your accident['Turn'] = 'right' as if it were a keyword argument, with the keyword accident['Turn']. But keywords can only be actual words [well, identifiers], not arbitrary expressions. So its attempt to interpret your code fails, and you get an error saying keyword can't be an expression.

View Discussion

Improve Article

Save Article

  • Read
  • Discuss
  • 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:
     


    How do I add values to a JSON in Python?

    Method 1: Using json..
    Import the json library with import json. ... .
    Read the JSON file in a data structure using data = json. ... .
    Update the Python data structure with the new entry [e.g., a new dictionary to append to the list]. ... .
    Write the updated JSON data back to the JSON file using json..

    How do I add data to an existing JSON object?

    Use push[] method to add JSON object to existing JSON array in JavaScript. Just do it with proper array of objects .

    How do you modify a JSON object in Python?

    How to update a JSON file in Python.
    a_file = open["sample_file.json", "r"].
    json_object = json. load[a_file].
    a_file. close[].
    print[json_object].
    json_object["d"] = 100..
    a_file = open["sample_file.json", "w"].
    json. dump[json_object, a_file].
    a_file. close[].

    How do you add a string to a JSON object in Python?

    Use the json. loads[] function. The json. loads[] function accepts as input a valid string and converts it to a Python dictionary. This process is called deserialization – the act of converting a string to an object.

    Chủ Đề