簡體   English   中英

立交橋查詢適用於overpass-turbo.eu,但不適用於本地

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

 
粵ICP備18138465號  © 2020-2025 STACKOOM.COM