0

以下の私の問題は、jsonオブジェクトを送信するときに、リストに複数のアイテムがあると言うことです? 上記で作成したdictでそのフィールドを1回変更することを除いて、それは多くのオブジェクトを送信します。何らかの理由で、上記の for ループを使用してリストから文字列を作成しても、実際には作成されず、1 つのオブジェクトの代わりに 15 のオブジェクトが取得され、コンマで区切られた 15 のものが含まれている可能性があります。私の予想される出力は name,special1,special2,special3..etc, review1,review2 である必要があります

代わりに、name、special1、review1 name、special2、review1 name、special3、review1 などを取得します。 name、special1、review2 name、special1、review3

私の主な質問は、json ダンプが倍数を吐き出さないように、リストを配列または単に文字列 (toString メソッドなど) に変換するにはどうすればよいですか?

 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))
4

1 に答える 1

0

あなたが何を望んでいるのかよくわかりません。あなたの例は紛らわしいです。JSON を使用する場合、それをリストとして保持しないのはなぜですか? なぜ文字列に変更するのですか?

このようなものが欲しいようです

for store in qy1:
    records_to_send.append({'store name': store.storeName, 'specials': store.storeSpecial}, 'reviews': store.reviews})
于 2013-04-21T05:28:41.210 に答える