我正在写一段代码来从英雄联盟api中检索某些信息。
我有一切正常工作并打印到我的控制台,我甚至设法访问数据并仅打印出我需要的信息,唯一的问题是有299个值我想要打印掉,我只能设法打印一次一个。这显然是排序它的最糟糕方式,因为编写程序需要永远。到目前为止,我花了3天多的时间研究和观看视频并没有成功。
下面是我目前的代码(减去进口)。
url =('https://na1.api.riotgames.com/lol/league/v4/challengerleagues/by-
queue/RANKED_SOLO_5x5?api_key=RGAPI-b5187110-2f16-48b4-8b0c-938ae5bddccb')
r = requests.get(url)
response_dict = r.json()
print(response_dict['entries'][0]['summonerName'])
print(response_dict['entries'][1]['summonerName'])
当我尝试索引像'[0:299]'这样的条目时,我得到以下错误:list indices必须是整数或切片,而不是str。
你可以遍历索引,将它们全部打印出来
for i in range(300):
print(response_dict['entries'][i]['summonerName'])
当你使用response_dict['entries'][M:N]
您可以创建一个新的字典列表,在您直接引用['summonerName']
之前必须将其提取出来
如果你print(response_dict['entries'][0:3])
你会明白我的意思
我只是将条目中的字典列表转换为数据帧。您可以很好地组织所有信息,并且可以轻松访问特定项目,包括summonerName
列。
import requests
from bs4 import BeautifulSoup as bs
import json
import pandas as pd
#url = yourURL
res = requests.get(url, headers = {'user-agent' : 'Mozilla/5.0'})
soup = bs(res.content, 'lxml')
data = json.loads(soup.select_one('p').text)
df = pd.DataFrame(data['entries'])
print(df)