gpt4 book ai didi

python - Overpass 查询适用于 overpass-turbo.eu,但不适用于本地

转载 作者:太空宇宙 更新时间:2023-11-03 21:11:22 27 4
gpt4 key购买 nike

我正在尝试从 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}})是 Overpass Turbo 的一项特殊功能,不是 Overpass API 的一部分。请参阅extended overpass turbo queries查看这些快捷键的列表。

{{geocodeArea:name}} 将告诉 Overpass Turbo 使用 Nominatim 执行地理编码请求。然后,它将使用第一个结果构建一个 area(id) 查询。您必须在程序中执行相同的步骤(使用 Nominatim 或任何其他 geocoder )。

关于python - Overpass 查询适用于 overpass-turbo.eu,但不适用于本地,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55041191/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com