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