Python 3.6 - 用dict中的dict解析json响应

时间:2018-05-28 15:41:19

标签: json python-3.x api parsing dictionary

我被驱使疯了因为我无法解析这个json回复。我尝试过很多不同的东西,没有什么能正常工作......你能帮帮我吗? 这是我正在解析的文件:

{
    "info": {
        "funds": {
            "asset": {
                "net": "12516.000",
                "total": "0"
            },
            "borrow": {
                "btc": "0",
                "cny": "0",
                "ltc": "0"
            },
            "free": {
                "btc": "0",
                "cny": "0",
                "ltc": "0",
                "eth": "0"
            },
            "freezed": {
                "btc": "0",
                "cny": "0",
                "ltc": "0",
                "eth": "0"

            },
            "union_fund": {
                "btc": "0",
                "ltc": "0"
            }
        }
    },
    "result": true
}

我只想要这样的东西:

#What I want to get the "net" which is "12516.000", so I tried this:
funds = response['info']['funds']['asset']['net']

funds = response[0]返回{作为回答,funds = response[1]给我r作为回复,最后如果我尝试funds = response['info']我收到此类错误: TypeError: string indices must be integers

2 个答案:

答案 0 :(得分:1)

您实际上并未解析JSON,它只是作为字符串读取,因此response[0]返回JSON字符串的第一个字符,或{。要解析JSON字符串,

import json
json.loads(response)['info']['funds']['asset']['net']

这是你期待的模式。有关json库的更多详细信息,请参见here

答案 1 :(得分:1)

我很欣赏 @ kevmo314 的答案。

有时您的响应可能包含前导和尾随空格。您可以使用 strip()删除它。

  

注意:当你得到回复时,基本上你得到一个字符串(在某些情况下,可能会有所不同),它可以表示像 list 这样的Python对象,字典等。

     

因此,在对它们执行任何操作之前,必须将它们转换回原始形式。

以下是工作代码。

 import json

 response = response.strip()
 response = json.loads(response)

 funds = response["info"]["funds"]["asset"]["net"]
 print(funds)