Python 3.x 尝试遍历多页星球大战JSON提要并将值存储在列表中
我试图点击星球大战API并将角色名的值存储在一个列表中。我正在使用.append,但它只存储最后一页的名称。我试过用列表和字典来存储这些名字。API已分页 我试图成为一个非常基本的字符搜索工具,返回字符信息,如果字符存在。我正在通过Mac上的Anaconda在Spyder中使用Python 3.6。感谢您的指导 谢谢Python 3.x 尝试遍历多页星球大战JSON提要并将值存储在列表中,python-3.x,list,loops,Python 3.x,List,Loops,我试图点击星球大战API并将角色名的值存储在一个列表中。我正在使用.append,但它只存储最后一页的名称。我试过用列表和字典来存储这些名字。API已分页 我试图成为一个非常基本的字符搜索工具,返回字符信息,如果字符存在。我正在通过Mac上的Anaconda在Spyder中使用Python 3.6。感谢您的指导 谢谢 import requests import urllib.parse #number of pages in JSON feed page_list = [1,2,3,4,5
import requests
import urllib.parse
#number of pages in JSON feed
page_list = [1,2,3,4,5,6,7,8,9]
for i in range(len(page_list)):
try:
pages = page_list[i]
endpoint = "https://swapi.co/api/people/?"
type = 'json'
#specifies api parameters
url = endpoint + urllib.parse.urlencode({"format": type, "page": pages})
#print(url_2)
#gets info
json_data = requests.get(url).json()
number_of_char = json_data['count']
#list to store names
st_names = []
count = 0
while count <= number_of_char:
print(json_data['results'][count]['name'])
st_names.append([json_data['results'][count]['name']])
count = count + 1
#error handling
except KeyError:
print('Key error \n')
pass
except IndexError:
print('Index error \n')
pass
导入请求
导入urllib.parse
#JSON提要中的页面数
页面列表=[1,2,3,4,5,6,7,8,9]
对于范围内的i(len(页面列表)):
尝试:
页码=页码列表[i]
端点=”https://swapi.co/api/people/?"
类型='json'
#指定api参数
url=endpoint+urllib.parse.urlencode({“格式”:类型,“页面”:页面})
#打印(url_2)
#获取信息
json_data=requests.get(url).json()
字符数=json字符数据['count']
#用于存储名称的列表
st_名称=[]
计数=0
当count时,您已经在循环中声明了list,因此它在每次迭代中都会被覆盖。因此,在for循环外部声明列表。自从我在循环内部声明列表以来,它正在重写自身并覆盖第一次迭代
将声明拉到循环之外修复了此问题 哇,我没注意到。谢谢当然,它现在起作用了。请添加一个解释,现在它更多的是一个评论而不是一个答案。