[英]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.