如何使用simplejson来序列化和维护属性?

时间:2011-01-17 17:25:39

标签: python json google-app-engine serialization simplejson

对于包含这两个键值对的字典:

str = StringProperty
time = DateTimeProperty

我想将其序列化为JSON,将其存储在数据存储区中,然后获取它,并将其反序列化为原始属性。

2 个答案:

答案 0 :(得分:2)

尝试这样做:

d = {
  'str'  : StringProperty,
  'time' : unicode(DateTimeProperty)
}
s = simplejson.dumps(d)
print s

答案 1 :(得分:0)

如果你的值是字符串,这很简单:

>>> import simplejson
>>> print simplejson.dumps({'str': 'StringProperty', 'time': 'DateTimeProperty'})
{"str": "StringProperty", "time": "DateTimeProperty"}

但是,如果值是来自自定义类的对象(例如Google App Engine属性类),则它们不是JSON可序列化的。

JSON仅序列化简单数据类型,例如整数/浮点数,布尔值,字符串,列表/元组和字典。 (有关详细信息,请参阅http://www.json.org/。)

为了获得JSON可序列化值,您需要定义一种将它们转换为简单数据类型的方法。例如,将对象转换为包含类名和重建它们所需参数的元组。