0

私のコントローラーでは、json文字列を取得しています(c.order_history次のように呼び出されます:

[
{
    "status": [
        {
            "status": "created",
            "timestamp": "2012-04-06 00:14:10"
        },
        {
            "status": "authed",
            "timestamp": "2012-04-06 00:14:17"
        }
    ],
    "product_info": [
        {
            "id": 3,
            "quantity": 1,
            "created": "2012-04-06 00:14:10",
            "image_id": 13341
        },
        {
            "id": 2,
            "quantity": 1,
            "created": "2012-04-06 00:14:10",
            "image_id": 13323
        },
        {
            "id": 1,
            "quantity": 1,
            "created": "2012-04-06 00:14:10",
            "image_id": 13322
        }
    ],
    "shipping_charge": "0.00",
    "order_number": "0723094747433",
    "shipping_address": {
        "country_code": null,
        "extended_address": "Unit Z",
        "locality": "Las Vagas",
        "company": null,
        "phone": null,
        "postal_code": "31415",
        "full_name": "Boris Karloff",
        "nickname": null,
        "region": "NV",
        "street_address": "123 Random Way"
    },
    "subtotal": "59.00"
}

]

私はそれを渡してjson.loads(order_history)辞書に変換し、次に各キーを抽出して、それらの中で後続のキー/値を取得できるようにします:

c.product_info = [{'product_info' : product_info} for product_info in c.order_history]

これはjson文字列全体を出力しますが、product_info今は名前が付けられています. timestamp誰かが、たとえば値product_info[0]['image_id']や値などにアクセスする方法について正しい方向に導くことができますshipping_addressか?

4

1 に答える 1

0

リスト内包表記でこれらの各辞書からキーをc.order_history取得するには、次のようにします。product_info

[{'product_info': order['product_info']} for order in c.order_history]
于 2012-04-06T20:17:29.943 に答える