从JSON variab中提取值

2024-09-30 04:39:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从我正在制作的网页刮板中提取一个名为“balanceStr”的值,但我运气不太好

到目前为止,我得到的是:

import requests
import json

url = "https://www.hpbscan.org/HpbScan/addrs/getAddressDetailInfo"
headers = {'Content-Type': 'application/json;charset=utf-8'}
body = '["0x7EC332476fCA4Bcd20176eE06F16960b5D49333e"]'

data = requests.post(url, data=body, headers=headers)

json_data = (json.loads(data.text))
#print(json_data)
print(json_data['balanceStr'])

如果我只是打印(json\u data),这就是输出,但我只是想在一个变量中获取balanceStr(36885.403…)的值,以便像打印(currentbalance)一样使用它

[
    "000000",
    "\u6210\u529f",
    {
        "addrs": {
            "accountType": null,
            "address": "0x7ec332476fca4bcd20176ee06f16960b5d49333e",
            "assetRankingOrder": "150",
            "balance": 36885403823844342504238,
            "balanceStr": "36885.40382384",
            "createTimestamp": 1569209857000,
            "fromCount": 22,
            "lastestBlock": 3951440,
            "map": {},
            "number": 229,
            "percentRate": "0.0369%",
            "startBlock": 51601,
            "toCount": 15
        },
        "hpbInstantPrice": {
            "changePercent": "-6.65%",
            "cnyPrice": "1.9890",
            "id": 1,
            "map": {},
            "updateTime": 1569210840000,
            "usdPrice": "0.2791"
        },
        "nonce": 22
    }
]

当我打印(json_data['balanceStr'])时,我得到的错误是:

    print(json_data['addrs'])
TypeError: list indices must be integers or slices, not str

任何帮助都将不胜感激


Tags: httpsimport刮板jsonurl网页mapdata
3条回答

json_data包含对象列表。你可以用

json_data[2]['addrs']

读取第三个对象,它似乎就是您试图访问的对象

那么

json_data[2]['addrs']["balanceStr"]

去读取你想要的最终值

正如错误消息所说,json_data是一个列表。您想要的项目位于json_data[2]。但是您需要的特定部分balanceStr位于名为addrs的元素中。把这些放在一起,你会得到:

json_data[2]['addrs']["balanceStr"]

看起来json的最低级别是一个列表,这意味着要获取“balanceStr”所需的dict对象。在本例中,它的json\u数据[2]['addrs'][“balanceStr”]

json_data[2]['addrs']["balanceStr"]

相关问题 更多 >

    热门问题