[英]Overpass query works on overpass-turbo.eu, but not locally
我正在尝试从Python脚本执行Overpass查询。 我正在overpass-turbo.eu上练习,发现以下查询可按预期工作:
[out:json][timeout:600];
{{geocodeArea:Niedersachsen}}->.searchArea;
(
node[place=city](area.searchArea);
node[place=town](area.searchArea);
);
out;
但是,当我从Python脚本提交完全相同的查询时,出现错误:
import requests
overpass_query = """
[out:json][timeout:600];
{{geocodeArea:Niedersachsen}}->.searchArea;
(
node[place=city](area.searchArea);
node[place=town](area.searchArea);
);
out;
"""
overpass_url = "http://overpass-api.de/api/interpreter"
response = requests.get(overpass_url, params={'data': overpass_query})
data = response.json()
/home/enno/events/docker/etl/venv/bin/python /home/enno/events/docker/etl/test2.py
Traceback (most recent call last):
File "/home/enno/events/docker/etl/test2.py", line 16, in <module>
data = response.json()
File "/home/enno/events/docker/etl/venv/lib/python3.6/site-packages/requests/models.py", line 897, in json
return complexjson.loads(self.text, **kwargs)
File "/usr/lib/python3.6/json/__init__.py", line 354, in loads
return _default_decoder.decode(s)
File "/usr/lib/python3.6/json/decoder.py", line 339, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python3.6/json/decoder.py", line 357, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
Process finished with exit code 1
为什么是这样? 它似乎与花括号有关,但我不知道该如何解决。
非常感谢,
恩诺
花括号(又名{{geocodeArea:Niedersachsen}}
)是立交桥Turbo的特殊功能,而不是立交桥API的一部分。 有关这些快捷方式的列表,请参见扩展的天桥Turbo查询 。
{{geocodeArea:name}}
会告诉立交桥Turbo使用Nominatim执行地理编码请求。 然后,它将使用第一个结果构造一个area(id)
查询。 您必须在程序中执行相同的步骤(使用Nominatim或任何其他地址解析器 )。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.