listproperty GAE to string方法

时间:2013-04-21 04:57:30

标签: python json google-app-engine

所以我的问题是,当它发送json对象时,我可以说列表中有多个项目?好吧它发送了许多对象,除了在我上面创建的字典中改变那个字段一次。出于某种原因,即使我使用上面的for循环从列表中创建一个字符串,它实际上并没有这样做,我得到15个对象而不是1个对象,可能有一个字段,其中包含15个东西,由逗号。 我的预期输出应该是 name,special1,special2,special3..etc,review1,review2

相反,我得到了 名,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))

1 个答案:

答案 0 :(得分:0)

我不确定你想要什么,你的例子令人困惑。如果您使用JSON,为什么不将它保留为列表?为什么要将其更改为字符串?

好像你想要这样的东西

for store in qy1:
    records_to_send.append({'store name': store.storeName, 'specials': store.storeSpecial}, 'reviews': store.reviews})