【问题标题】:Star Wars API-Retrieve multiple pages of data from API with GETStar Wars API - 使用 GET 从 API 中检索多页数据
【发布时间】:2021-11-24 19:50:47
【问题描述】:

我想从一个 API 变量中检索所有数据。目前我只能检索第一页,但不能检索全部。 API 是一个包含《星球大战》所有信息的网页。我需要角色(人)的所有信息。

我有以下代码: 在我得到的第一部分中,共有 82 人。 API 页面每页限制为 10 个结果,因此应该有 8 个完整页面,第 9 个页面只有 2 个结果:

#Importamos las librerias
import requests
import json
#Obtenemos la url de la API
url= requests.get("https://swapi.dev/api/people")
info=json.loads(url.content) #Transformamos a JSON el contenido
quantity=info['count'] #Extraremos la variable 'count'
print("Hay un total de",quantity, "personajes") #Imprimimos el total de personajes.
#
#Ahora el listado
#
for page in range(1,3):
    url_pages= requests.get("https://swapi.dev/api/people?page")
    lists=json.loads(url_pages.content)
    results=lists['results']
results

你能帮帮我吗?如果可以在不知道确切页面数量的情况下自动循环所有页面会更好,但有总比没有好:)

【问题讨论】:

    标签: python-3.x api loops python-requests


    【解决方案1】:

    也许你应该安装swapi-python 并运行:

    peoples = swapi.get_all("people")
    
    for p in peoples:
        print(p.name)
    

    【讨论】:

    • 嗨 Andrew,我正在使用 jupyter,但我不知道我是否可以安装模块......难道没有其他方法不仅可以使用这个 API 吗?因为我知道 swapi 是这个 API 特有的。
    猜你喜欢
    • 1970-01-01
    • 2019-01-20
    • 2021-09-28
    • 2016-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-17
    • 2022-11-24
    相关资源
    最近更新 更多