Model实例与dict和JSON相互转换的方法

标签:Google App Engine, Python

今天在读GAE SDK源码时发现,Entity实际上就是dict的子类,而Model也有个转换成Entity对象的_to_entity方法,于是可以轻易转换成dict对象,再用simplejson转换成JSON即可。

转换回去就更简单了,因为Model的构造函数是可以传字典参数的,而且还有个from_entity类方法。
from google.appengine.ext import db
from google.appengine.api import datastore
from django.utils import simplejson

class User(db.Expando):
  pass

entity = datastore.Entity('User')
user = User(name='ooxx', age=12)
user._to_entity(entity)
print entity # {'age': 12, 'name': 'ooxx'}
print simplejson.dumps(entity) # {"age": 12, "name": "ooxx"}

user2 = User(**entity)
print user2.name # ooxx
print user2.age# 12

user3 = User.from_entity(entity)
print user3.name # ooxx
print user3.age# 12

0条评论 你不来一发么↓

    想说点什么呢?