How to update json file with python

How to update json file with python

The issue here is that youve opened a file and read its contents so the cursor is at the end of the file. By writing to the same file handle, youre essentially appending to the file.

The easiest solution would be to close the file after youve read it in, then reopen it for writing.

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

data[location] = NewPath

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

Alternatively, you can use seek() to move the cursor back to the beginning of the file then start writing, followed by a truncate() to deal with the case where the new data is smaller than the previous.

with open(replayScript.json, r+) as jsonFile:
    data = json.load(jsonFile)

    data[location] = NewPath

    jsonFile.seek(0)  # rewind
    json.dump(data, jsonFile)
    jsonFile.truncate()
def updateJsonFile():
    jsonFile = open(replayScript.json, r) # Open the JSON file for reading
    data = json.load(jsonFile) # Read the JSON into the buffer
    jsonFile.close() # Close the JSON file

    ## Working with buffered content
    tmp = data[location] 
    data[location] = path
    data[mode] = replay

    ## Save our changes to JSON file
    jsonFile = open(replayScript.json, w+)
    jsonFile.write(json.dumps(data))
    jsonFile.close()

How to update json file with python

Leave a Reply

Your email address will not be published.