CyberGeneticist
CyberGeneticist

Reputation: 103

Saving and loading simple data in Python convenient way

I'm currently working on a simple Python 3.4.3 and Tkinter game.

I struggle with saving/reading data now, because I'm a beginner at coding.

What I do now is use .txt files to store my data, but I find this extremely counter-intuitive, as saving/reading more than one line of data requires of me to have additional code to catch any newlines.

Skipping a line would be terrible too.

I've googled it, but I either find .txt save/file options or way too complex ones for saving large-scale data.

I only need to save some strings right now and be able to access them (if possible) by key like in a dictionary key:value .

Do you know of any file format/method to help me accomplish that?

Also: If possible, should work on Win/iOS/Linux.

Upvotes: 0

Views: 118

Answers (2)

lemonhead
lemonhead

Reputation: 5518

It sounds like using json would be best for this, which comes as part of the Python Standard library in Python-2.6+

import json

data = {'username':'John', 'health':98, 'weapon':'warhammer'}

# serialize the data to user-data.txt
with open('user-data.txt', 'w') as fobj:
    json.dump(data, fobj)

# read the data back in
with open('user-data.txt', 'r') as fobj:
    data = json.load(fobj)

print(data)
# outputs: 
# {u'username': u'John', u'weapon': u'warhammer', u'health': 98}

A popular alternative is yaml, which is actually a superset of json and produces slightly more human readable results.

Upvotes: 2

mrcheshire
mrcheshire

Reputation: 535

You might want to try Redis.

http://redis.io/

I'm not totally sure it'll meet all your needs, but it would probably be better than a flat file.

Upvotes: 0

Related Questions