如何使用simplejson序列化并保持属性?
对于一个包含这两个键值对的字典:
str = StringProperty
time = DateTimeProperty
我想把它转换成JSON格式,存储到数据库里,然后再取出来,把它恢复成原来的样子。
2 个回答
0
如果你的值是字符串,那就简单了:
>>> import simplejson
>>> print simplejson.dumps({'str': 'StringProperty', 'time': 'DateTimeProperty'})
{"str": "StringProperty", "time": "DateTimeProperty"}
但是,如果这些值是来自自定义类的对象(比如谷歌应用引擎的属性类),那么它们就不能被转换成JSON格式。
JSON只能处理一些简单的数据类型,比如整数、浮点数、布尔值、字符串、列表/元组和字典。(想了解更多,可以查看http://www.json.org/)
为了让值可以被转换成JSON格式,你需要定义一种方法,把它们转变为简单的数据类型。比如,可以把对象转换成一个包含类名和重建这些对象所需参数的元组。
2
试着这样做:
d = {
'str' : StringProperty,
'time' : unicode(DateTimeProperty)
}
s = simplejson.dumps(d)
print s