在Python中进行多个API查询

2024-10-03 17:18:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试用Python进行API查询,以返回印度尼西亚地区及其唯一id的列表。我能够从API中提取数据并将其存储为JSON。你知道吗

但是,API查询只返回前100个结果。在这个特定的例子中,我知道印度尼西亚有700多个地区,因此需要7个查询(但是由于我并不总是知道一个国家有多少个地区,所以我希望能够运行一个循环,不断地查询,直到所有的结果都用尽为止)。你知道吗

理想情况下,我希望对API进行重复查询,并将每个查询的结果附加到一个变量中,直到提取出完整的地区列表。你知道吗

例如。 查询1:将结果1-100存储在变量X中 查询2:将结果101-200追加到变量X。 重复此操作,直到存储所有结果。你知道吗

有关API的更多信息,请参见此处:https://gtmp.linkssystem.org/docs/districts

以下是我开始的代码:

from urllib2 import Request, urlopen, URLError

request = Request('https://gtmp.linkssystem.org/api/districts?admin0=indonesia')

response = urlopen(request)
geo = response.read()

import json
geolist = json.loads(geo)

如果这影响了什么,我希望将所有结果都写入.csv,如下所示:

import csv

with open('C:\\Users\\Owner\\Desktop\\geo.csv', 'wb') as fp:
    a = csv.writer(fp)
    a.writerow(["admin0id", "admin0","admin1id","admin1","admin2id","admin2","admin3id","admin3"])
    for e in geolist:
        a.writerow([e["admin0id"],
                    e["admin0"],
                    e["admin1id"],
                    e["admin1"],
                    e["admin2id"],
                    e["admin2"],
                    e["admin3id"],
                    e["admin3"]])

Tags: csvhttpsorgimportapi列表request地区