Skip to content

Instantly share code, notes, and snippets.

@oberstet
Created January 7, 2015 09:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save oberstet/6df18395c1c173a1cf89 to your computer and use it in GitHub Desktop.
Save oberstet/6df18395c1c173a1cf89 to your computer and use it in GitHub Desktop.
import ast
import uuid
import datetime
import pprint
import serpent
class DemoClass:
def __init__(self):
self.i=42
self.b=False
data_orig = {
"names": ["Harry", "Sally", "Peter"],
"big": 2**200,
"colorset": { "red", "green" },
"id": uuid.uuid4(),
"timestamp": datetime.datetime.now(),
"class": DemoClass(),
}
pprint.pprint(data_orig)
print
print "-"*10
print
# serialize it
ser = serpent.dumps(data_orig, indent=True)
open("data.serpent", "wb").write(ser)
print("Serialized form:")
print(ser.decode("utf-8"))
# read it back
data = serpent.load(open("data.serpent", "rb"))
print("Data:")
pprint.pprint(data)
# you can also use ast.literal_eval if you like
ser_string = open("data.serpent", "rb").read()
data2 = ast.literal_eval(ser_string)
assert data2==data
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment