我正在尝试在Python中进行API查询,以返回印度尼西亚的区域列表及其唯一ID。我能够从API中提取数据并将其存储为JSON。
但是,API查询仅返回前100个结果。在这个特殊的例子中,我知道印度尼西亚有700多个区,所以它需要7个查询(但由于我并不总是知道一个国家有多少区,我希望能够运行一个循环保持查询,直到所有结果都用完为止。
理想情况下,我想对API进行重复查询,并将每个查询的结果附加到一个变量中,直到我提取完整的区域列表。
e.g。 查询1:在变量X中存储结果1 - 100 查询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"]])