繁体   English   中英

在 jupyter notebook 中转换 OpenStreetMap 查询时出现 JSONDecodeError

[英]JSONDecodeError when convert OpenStreetMap query in jupyter notebook

我需要与 OpenStreetMap 相关的帮助。 我正在使用 python(jupyter notebook)来获取印度尼西亚巴厘岛地区医院的数据。 这是我的代码和查询:

import pandas as pd
import requests
import json

overpass_api = "http://overpass-api.de/api/interpreter"

query_hospital = """
[out:json];
{{geocodeArea:'Provinsi Bali'}}->.searchArea;
node[amenity='hospital'](area.searchArea);
out;
"""

response_hospital = requests.get(overpass_api, params={'data':query_hospital})

但是当我运行下一个代码时,

data_hospital = response_hospital.json()

它返回错误JSONDecodeError: Expecting value: line 1 column 1 (char 0)

该查询在Overpass Turbo中运行良好,但当我放入笔记本时,它返回错误。

我找到了解决方案。 看起来 python 无法解析 openstreetmap 查询中的双花括号 {{ }}。 所以我将查询修改成这样

query_hospital = """
[out:json];
area[name=Bali];
node[amenity='hospital'](area);
out;
"""

或者如果我们使用当地语言的地区名称

query_hospital = """
[out:json];
area['name:id'='Provinsi Bali'];
node[amenity='hospital'](area);
out;
"""

查询返回相同的结果,现在 python 可以解析它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM