HoneyPoop
HoneyPoop

Reputation: 513

How do I append a JSON file?

How would I append a JSON file? I know how to append a JSON variable, but how do I append a file? for example, if my JSON file was:

{"people": [{"name" : "Michael Scott", "city": "Scranton"}]}

If I wanted to add another name to people, and that was in a JSON file, how would I do that?

Upvotes: 2

Views: 249

Answers (2)

Gabio
Gabio

Reputation: 9494

Let's say your destination json is:

# dest.json
{"people": [{"name" : "Michael Scott", "city": "Scranton"}]}

and you want to append the following json:

# source.json
{"name" : "Blah Blah", "city": "blah"}

Try:

import json

with open("destination.json") as fd, open("source.json") as fs:
    dest = json.load(fd)
    source = json.load(fs)
    dest["people"].append(source)
with open("destination.json", 'w') as fd:
    json.dump(dest, fd)

Upvotes: 0

Leo Arad
Leo Arad

Reputation: 4472

You can try

with open("json_exp.txt", "r+") as f:
         json_obj = json.loads(f.read())
         json_obj["people"].append({"name":"new_person"})
         f.seek(0)
         json.dump(json_obj, f)

This code will read a text file that have a JSON object in it and will append a new value to the dict that made by the JSON object in the file then it will store the new JSON object to the file.

Upvotes: 2

Related Questions