python - 如何在 Python 中以列表为变量调用 API 函数?
问题描述
我有一个 python 脚本,它通过 overpass-API 成功地从 OSM 中提取 POI(兴趣点)数据。有三个输入变量符合请求:“country_code”、“master_type”和“value_type”。
overpass_query = f"""
[out:json];
area["ISO3166-1"="{country_code}"][admin_level=2];
( node["{master_type}"="{value_type}"](area);
way["{master_type}"="{value_type}"](area);
rel["{master_type}"="{value_type}"](area);
);
out center;
"""
response = requests.get(overpass_url,
params={'data': overpass_query})
data = response.json()
虽然我有“country_code”和“master_type”的单一值,但有多个“value_type”。为此,我创建了一个名为 value_type_list 的列表
value_type_list = ['restaurant','fuel','casino']
我想为value_type变量中的每个value_type_list循环这个脚本。如何才能做到这一点?
非常感谢!
解决方案
只需这样做:
country_code = 1
master_type = "Some value"
for value_type in ['restaurant','fuel','casino'] :
overpass_query = f"""
[out:json];
area["ISO3166-1"="{country_code}"][admin_level=2];
( node["{master_type}"="{value_type}"](area);
way["{master_type}"="{value_type}"](area);
rel["{master_type}"="{value_type}"](area);
);
out center;
"""
print(overpass_query)
输出:
[out:json];
area["ISO3166-1"="1"][admin_level=2];
( node["Some value"="restaurant"](area);
way["Some value"="restaurant"](area);
rel["Some value"="restaurant"](area);
);
out center;
[out:json];
area["ISO3166-1"="1"][admin_level=2];
( node["Some value"="fuel"](area);
way["Some value"="fuel"](area);
rel["Some value"="fuel"](area);
);
out center;
...
推荐阅读
- node.js - 在 node.js 应用程序上保持打开数据库连接是一种好习惯吗?
- assembly - 尝试打印号码时出错
- reactjs - formik表单验证不起作用reactjs
- c++ - PolyHook x64Detour 未连接到 Direct3DCreate9
- git - 使用 Nix 的 Git 时权限被拒绝(公钥)
- angular - Angular v6 - 延迟加载的路由未加载
- javascript - 当我上床睡觉时,React Modal 正在工作
- javascript - 如何在本地应用程序目录中安装 nodejs 模块?
- scrape - 从抓取的表中删除 '\n'
- python - 从文件中读取和修改行