繁体   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