【发布时间】:2019-11-16 12:01:03
【问题描述】:
我也在尝试遍历所有 api 页面并获取多个 json 对象并将它们作为元组存储在列表中并返回最终列表
这仅适用于 1 个对象,但一旦我开始添加多个对象,我就无法让它工作。我尝试了各种调整并更改为 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')]
【问题讨论】:
-
您是否收到任何错误消息?始终将完整的错误消息(完整的 Traceback)放在问题中(作为文本,而不是屏幕截图)。还有其他有用的信息。
-
使用
mylist.extend(another_list)方法将两个列表连接在一起 -
如何在多页中使用它?显示有问题。您可以创建最少的工作代码,以便我们可以运行它并查看问题。
-
“所有页面”是什么意思?当你用
data1['next']重复它时,这不就是你在做的吗? -
我试过你的脚本,它创建了一个包含 87 个字符的列表。这就是所有页面。
标签: python json list loops tuples