【发布时间】:2020-09-17 15:45:39
【问题描述】:
我真的在努力解决这个问题。我是 python 新手,我正在尝试从 API 中提取数据。
我已设法运行下面的脚本,但我需要修改它以过滤一列的多个值,比如说英格兰和苏格兰。 SQL IN 运算符是否有等价物,例如Area_Name IN ('England','Scotland')。
from requests import get
from json import dumps
ENDPOINT = "https://api.coronavirus.data.gov.uk/v1/data"
AREA_TYPE = "nation"
AREA_NAME = "england"
filters = [
f"areaType={ AREA_TYPE }",
f"areaName={ AREA_NAME }"
]
structure = {
"date": "date",
"name": "areaName",
"code": "areaCode",
"dailyCases": "newCasesByPublishDate",
}
api_params = {
"filters": str.join(";", filters),
"structure": dumps(structure, separators=(",", ":")),
"latestBy": "cumCasesByPublishDate"
}
formats = [
"json",
"xml",
"csv"
]
for fmt in formats:
api_params["format"] = fmt
response = get(ENDPOINT, params=api_params, timeout=10)
assert response.status_code == 200, f"Failed request for {fmt}: {response.text}"
print(f"{fmt} data:")
print(response.content.decode())
【问题讨论】:
标签: python api get python-requests endpoint