2011-02-26 114 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) 
相關問題