Python 3.x 尝试遍历多页星球大战JSON提要并将值存储在列表中

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

我试图点击星球大战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,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循环外部声明列表。

自从我在循环内部声明列表以来,它正在重写自身并覆盖第一次迭代


将声明拉到循环之外修复了此问题

哇,我没注意到。谢谢当然,它现在起作用了。请添加一个解释,现在它更多的是一个评论而不是一个答案。