Python从API读取数据,typeError:列表索引必须是整数,而不是s

2024-06-03 03:31:37 发布

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

我是python新手。我尝试从api中读取一些数据,但在第二个url中出现问题,我不知道当我有更多数据时如何解析api。第一个URL只有一个“名称”,第二个URL有更多名称。。。。 如何打印第二个url中的所有名称。。。 谢谢你

import os
from urllib import urlopen
import json

url = urlopen('https://www.coincalculators.io/api.aspx?name=ethereum&hashrate=420000000&power=0&poolfee=1&powercost=0&difficultytime=0').read()
data= json.loads(url)  
name = data["name"] # OK
print name
rewardsInMonth = data["rewardsInMonth"] # OK
print rewardsInMonth
#url with more names
url2 = urlopen('https://www.coincalculators.io/api/allcoins.aspx?hashrate=420000000&power=0&powercost=0&difficultytime=0&algorithm=Ethash').read()
data2= json.loads(url2)  
name2 = data2["name"] # OK
print name2

我看到有一个方括号在第二个网址,这里是我的问题


Tags: 数据namehttpsimport名称apijsonurl
1条回答
网友
1楼 · 发布于 2024-06-03 03:31:37

这个API的不同端点返回不同的数据结构。第一个调用只返回一个dict,第二个调用(到allcoins.aspx端点)毫不奇怪地返回dict列表

非常有礼貌地将您推到python3和requests模块的方向,第二个URL返回一个列表,因此您可以使用for循环来迭代硬币:

import requests

coin = requests.get("https://www.coincalculators.io/api.aspx?name=ethereum&hashrate=420000000&power=0&poolfee=1&powercost=0&difficultytime=0").json()
print(coin["name"])

for coin in requests.get("https://www.coincalculators.io/api/allcoins.aspx?hashrate=420000000&power=0&powercost=0&difficultytime=0&algorithm=Ethash").json():
    print(coin["name"])

相关问题 更多 >