skip to Main Content

I’m working with a JSON file and I was wondering if there’s a way to append a string to a list within the file. Here’s an example of the JSON file I’m working with:

{"language": "['English', 'French']", "bank": 50}

I want to add the string "Spanish" to the "language" list. How can I do this?

Here’s the code I’ve written so far, but I’m not sure how to modify it to achieve what I want:

import json

with open("example.json", "r") as jsonFile:
    data = json.load(jsonFile)

add list(data["language"]['Spanish'])

with open("example.json", "w") as jsonFile:
    json.dump(data, jsonFile)

If anyone has any suggestions on how I can modify this code to achieve my goal, I would greatly appreciate it. Thank you in advance for your help!

3

Answers


  1. In order to add to a Python list you should use the append() method.

    Example:

    import ast
    ast.literal_eval(data["language"]).append("Spanish")
    
    Login or Signup to reply.
  2. import json
    import ast
    
    with open("example.json", "r") as jsonFile:
        data = json.load(jsonFile)
    
    #data={"language": "['English', 'French']", "bank": 50}
    
    #take a variable e
    
    e=ast.literal_eval(data['language'])
    
    e.append('Spanish')
    
    data['language']=e
    
    print(data)
    #{'language': ['English', 'French', 'Spanish'], 'bank': 50}
    
    Login or Signup to reply.
  3. {"language": "['English', 'French']", "bank": 50}

    Here the "language" keys hold a string rather than a list because of the " before [ and " after ]. To solve this, change the file to this:

    {"language": ["English", "French"], "bank": 50}

    Then use this code to append "Spanish" or any language from now on:

    import json
    
    with open("temp.json", "r") as f:
        data = json.load(f)
    
    data["language"].append("Spanish")
    
    with open("temp.json", "w") as f:
        json.dump(data, f)
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search