2011-02-26 110 views
0

我正在使用Google App Engine和Python。如何正确保存并从数据存储中获取JSON?

class Spam(db.Model) 
    eggs = db.TextProperty 

# Create some json and store it to a Spam Entity 
eggs_dict = {"large":10, "medium":5, "small":24} 
eggs_json = simplejson.dumps(eggs) 
spam = Spam(eggs=db.Text(eggs_json)) 

# Later, fetch spam and then return the json as part of a Response 
self.response.out.write(spam.eggs) 

当我这样做,我得到一个看起来像回应:

{"large":"10","medium":"5","small":"24"} 

这是我第一次用JSON +的Python + GAE Datastore的工作,我的问题是,这似乎是正确的方式来存储和获取JSON字符串,但在我将这个设计模式提交给其他实体之前,我想知道这是否是一种好的模式,并且不会出现任何数据错误。具体来说,我需要在数据存储区内还是外面执行任何编码?

回答

1

当将字符串(您已将序列化为字符串的序列)插入AppEngine数据存储区时,您不需要执行任何编码。

我试过下面的代码,并从数据存储检索到相同的完全相同的字符串。

eggs_dict = {"large":10, "medium":5, "small":24} 
eggs_json = simplejson.dumps(eggs_dict) 
spam = Spam(key_name='blah') 
spam.eggs = eggs_dict 
db.put(spam.eggs)   

new_spam = db.get(db.Key.from_path('Spam', 'blah')) 

# Later, fetch spam and then return the json as part of a Response 
self.response.out.write(new_spam.eggs) 
相关问题