Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to write a dictionary into an existing file?

Let's say I have a dictionary and I want to write it into an existing file. How can I do so without losing anything that could potentially already exist in the file? What I was thinking of is doing the following:

def write_report(r, filename):
        input_filename=open(filename, "a")
        input_filename.close()
        for (k,v) in r.items():
               input_filename.write(k,v)
        return filename

what I want to make sure is that the filename correctly contains the dictionary.

like image 761
user300 Avatar asked Nov 24 '13 00:11

user300


1 Answers

You can use json module to read and write data structures in JSON format (in other words serialize to JSON and deserialize from JSON). For example:

import json

# load from file:
with open('/path/to/my_file.json', 'r') as f:
    try:
        data = json.load(f)
    # if the file is empty the ValueError will be thrown
    except ValueError:
        data = {}

# save to file:
with open('/path/to/my_file.json', 'w') as f:
    data['new_key'] = [1, 2, 3]
    json.dump(data, f)
like image 195
Eugene Naydenov Avatar answered Sep 19 '22 07:09

Eugene Naydenov