如何用列表解析嵌套字典的键值?

时间:2015-04-09 17:25:55

标签: python json parsing dictionary

我想解析数量'来自这个JSON字符串...

json_data = {
    u'orderNumber': u'135490818',
    u'resultingTrades': [
        {
            u'tradeID': u'91846',
            u'rate': u'0.00003530',
            u'amount': u'10', u'date':
            u'2015-04-09 13:47:29',
            u'total': u'0.000353',
            u'type': u'buy'
        }
    ]
}

我正在尝试:

json_data['orderNumber']['resultingTrades']['tradeID']['amount']

我收到错误:Error: string indices must be integers

我认为错误是因为字典嵌套了一个列表。

解析'数量的正确方法是什么?

2 个答案:

答案 0 :(得分:4)

就这样做

json_data['resultingTrades'][0]['amount']

当你这样做时

json_data['orderNumber']['resultingTrades']['tradeID']['amount']

json_data['orderNumber']返回' 135490818'这是一个字符串,然后上面的语句变为

'135490818'['resultingTrades']['tradeID']['amount']

现在您尝试使用不允许的字符串索引字符串作为字符串python只能使用整数来访问。

答案 1 :(得分:2)

"字符串索引必须是整数" 表示您正在使用JSON字符串。要访问数据,首先必须将字符串解析为Python数据容器,在这种情况下为字典:

import json
json_data = 'json_data = { u"orderNumber": u"135490818", u"resultingTrades": [ { u"tradeID": u"91846", u"rate": u"0.00003530", u"amount": u"10", u"date": u"2015-04-09 13:47:29", u"total": u"0.000353", u"type": u"buy" } ] }'

python_data  = json.loads(json_data)

json.loads()用于"加载字符串" ,因此正在解析您的JSON字符串。

现在您可以访问您的金额as avinash pointed out

python_data['resultingTrades'][0]['amount']