Python通过api循环并将多个对象作为元组附加到列表中

Python通过api循环并将多个对象作为元组附加到列表中,python,json,list,loops,tuples,Python,Json,List,Loops,Tuples,我也在尝试遍历api的所有页面,获取多个json对象,并将它们存储为列表中的元组,然后返回最终列表 这只适用于一个对象,但一旦我开始添加多个对象,它就无法工作。我尝试了各种各样的调整,并将循环更改为while,但似乎无法开始工作 def star_wars_characters(url): all_names1 = [] response1 = requests.get(url) data1 = response1.json() for x in data1['

我也在尝试遍历api的所有页面,获取多个json对象,并将它们存储为列表中的元组,然后返回最终列表

这只适用于一个对象,但一旦我开始添加多个对象,它就无法工作。我尝试了各种各样的调整,并将循环更改为while,但似乎无法开始工作

def star_wars_characters(url):
    all_names1 = []
    response1 = requests.get(url)
    data1 = response1.json()

    for x in data1['results']:
        all_names1.append(x['name'])


    while data1['next'] is not None:
        response1 = requests.get(data1['next'])
        data1 = response1.json()

        for x in data1['results']:
            all_names1.append(x['name'])

    return all_names1


print(star_wars_characters("https://swapi.co/api/people/?page=1"))
我正试图实现如下输出,但对所有页面都是如此。这只是第一页的结果,我通过将for循环更改为while来返回,但无法获取剩余的数据页:

[('Luke Skywalker', '77'), ('C-3PO', '75'), ('R2-D2', '32'), ('Darth Vader', '136'), ('Leia Organa', '49'), ('Owen Lars', '120'), ('Beru Whitesun lars', '75'), ('R5-D4', '32'), ('Biggs Darklighter', '84'), ('Obi-Wan Kenobi', '77')]

你有收到任何erorr信息吗?始终将完整的错误消息(完整回溯)放在问题中(作为文本,而不是屏幕截图)。还有其他有用的信息。使用
mylist.extend(另一个列表)
方法将两个列表连接在一起。如何将其用于多个页面?有问题的就拿出来。您可以创建最小的工作代码,这样我们就可以运行它并看到问题。您所说的“所有页面”是什么意思?当你用
data1['next']
重复它时,你不就是这么做的吗?我尝试了你的脚本,它创建了一个包含87个字符的列表。这是所有的页面。你有收到任何erorr信息吗?始终将完整的错误消息(完整回溯)放在问题中(作为文本,而不是屏幕截图)。还有其他有用的信息。使用
mylist.extend(另一个列表)
方法将两个列表连接在一起。如何将其用于多个页面?有问题的就拿出来。您可以创建最小的工作代码,这样我们就可以运行它并看到问题。您所说的“所有页面”是什么意思?当你用
data1['next']
重复它时,你不就是这么做的吗?我尝试了你的脚本,它创建了一个包含87个字符的列表。这是所有的页面。
import requests

def star_wars_characters(url):
    return_data = []

    response = requests.get(url)
    data = response.json()

    while True:    
        for result in data['results']:
            return_data.append((result['name'], result['mass']))

        if data['next'] is None:
            break

        response = requests.get(data['next'])
        data = response.json()

    return return_data

print(star_wars_characters("https://swapi.co/api/people/?page=1"))