0
所以我下面的問題是,當它發送json對象可以說我有多個項目在列表中?那麼它會發送很多對象,除了在上面創建的字典中更改該字段一次。出於某種原因,即使我使用上面的for循環從列表中創建一個字符串,它實際上並沒有這樣做,並且我得到了15個對象而不是1個對象,也許這個字段有15個東西在它們之間用逗號分隔。 我預期的輸出應該是 名,special1,SPECIAL2,special3..etc,review1,review2listproperty GAE到字符串方法
,而不是我得到 名,special1,review1 名,SPECIAL2,review1 名,special3,review1 等。 名,special1,review2 名,special1,review3
我的主要問題是如何將列表轉換爲數組或者甚至只是一個字符串(如toString方法),這樣的json轉儲不吐多倍?
class store(db.Model):
mykey = db.StringProperty(db.Key)
storeSpecial = db.ListProperty(item_type=str)
reviews = db.ListProperty(item_type=str)
storeName = db.StringProperty()
#later in the code
qy1 = GqlQuery("SELECT storeName,storeSpecial,reviews FROM store WHERE mykey =:1",dataInput)
records_to_send = []
for i in qy1:
rev =""
for k in i.review:
rev = rev + str(k) + ","
spec = ""
for k2 in i.storeSpecial:
spec = spec + str(k2) + ","
output = {"store name": i.storeName,"specials": spec,"reviews":rev}
records_to_send.append(output)
self.response.out.write(json.dumps(records_to_send))
很好,因爲當我離開它,例如一個列表,當我運行的捲曲後聲明中我得到這個回: [{「商店名稱」:西爾斯, 「specials」:spec1,「reviews」:rev1},{「store name」:Sears,「specials」:spec2,「reviews」,rev1},.. etc直到兩個列表結束爲止] 我想要的是[ {「商店名稱」:Sears,「特價商品」:所有特價商品列表,「評論」:所有評論列表},「商店名稱」:walmart,「特價商品」:所有特價商品列表,「評論」:全部列表評論}] – user2202316 2013-04-21 13:36:30
我相信你想要的就是你應該得到的。它會像[{商店名稱:name1,specials:[special1的列表],rev:[special2的列表]}]]你有沒有在數據存儲中檢查你的數據?或者你是否嘗試過我的代碼? – marcadian 2013-04-21 16:36:19
是的,我曾經只是列表,但然後我有一個序列化的錯誤。然後,我將它切換到我上面提到的列表中,將列表提取爲字符串,就像發送它的名稱一樣。我根據你的建議回到了列表中,而且我仍然得到相同的結果。在數據存儲中,它只是作爲列表存儲(評論和特別報道)。我不清楚,如果我在列表中有兩個項目,爲什麼它需要兩個json對象而不是一個名稱,並且包含整個列表而不僅僅是一個元素。 – user2202316 2013-04-21 18:04:09