Python listproperty GAE到字符串方法

Python listproperty GAE到字符串方法,python,json,google-app-engine,Python,Json,Google App Engine,所以我下面的问题是,当它发送json对象时,让我们假设列表中有多个项目?它发送了那么多的对象,除了在我上面创建的dict中改变那个字段一次。出于某种原因,尽管我使用上面的For循环从列表中创建了一个字符串,但实际上并没有这样做,我得到了15个对象,而不是1个对象,其中可能有一个字段,其中有15个东西用逗号分隔。 我的预期输出应该是 名称,特殊1,特殊2,特殊3..等,评审1,评审2 相反,我得到了 名称、专题1、评论1 名称、专题2、评论1 名称、特殊3、审查1 等 名称、特殊1、审查2 名称、

所以我下面的问题是,当它发送json对象时,让我们假设列表中有多个项目?它发送了那么多的对象,除了在我上面创建的dict中改变那个字段一次。出于某种原因,尽管我使用上面的For循环从列表中创建了一个字符串,但实际上并没有这样做,我得到了15个对象,而不是1个对象,其中可能有一个字段,其中有15个东西用逗号分隔。 我的预期输出应该是 名称,特殊1,特殊2,特殊3..等,评审1,评审2

相反,我得到了 名称、专题1、评论1 名称、专题2、评论1 名称、特殊3、审查1 等 名称、特殊1、审查2 名称、专题1、评论3

我的主要问题是,如何将列表转换为数组,甚至仅仅转换为字符串(如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))

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

看来你想要这样的东西

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

因为当我把它作为一个列表,例如,我在运行curl post语句时得到这个:[{“商店名称”:Sears,“specials”:spec1,“评论”:rev1},{“商店名称”:Sears,“specials”:spec2,“评论”,rev1},…等等,直到两个列表的末尾]我想要的是[{“商店名称”:Sears,“specials”:所有评论的列表,“评论”:所有评论的列表},“店名”:沃尔玛,“特价品”:所有特价品列表,“评论”:所有评论列表]我相信你想要的就是你应该得到的。它会像[{店名:名称1,特价品:[特价品列表1],rev:[特价品列表2]}]你检查过数据存储中的数据吗?或者你尝试过我上面的代码吗?是的,我以前只使用列表,但后来我遇到了一个可序列化的错误。然后我将它切换到上面的位置,将列表提取为一个字符串,就像发送它的名称一样。我根据你的建议返回列表,仍然得到相同的结果。在数据中我不明白,如果我在列表中有两个项目,为什么它需要两个json对象,而不是一个有名称的对象,并且包含整个列表,而不是其中的一个元素。