我被驱使疯了因为我无法解析这个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
答案 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)