【问题标题】:How To Parse Key Value of Nested Dictionary With A List?如何用列表解析嵌套字典的键值?
【发布时间】:2015-04-09 17:25:55
【问题描述】:

我想从这个 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

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

解析“金额”的正确方法是什么?

【问题讨论】:

    标签: python json parsing dictionary


    【解决方案1】:

    就这样做

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

    当你这样做时

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

    json_data['orderNumber']返回'135490818'是一个字符串然后上面的语句就变成了

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

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

    【讨论】:

      【解决方案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']
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-09-25
        • 1970-01-01
        • 1970-01-01
        • 2021-05-10
        • 1970-01-01
        • 2021-07-08
        • 2012-05-21
        相关资源
        最近更新 更多