在 python 中为 geo_data 加载 json 文件时出现问题
Problem with loading a json file for geo_data in python
我目前正在尝试使用 python 中的 folium 库来创建网络地图。我有一个文件 world.json
,其中包含 geo_data。我在 post 末尾向文件提供了一个 link。我尝试了以下代码:
data = [json.loads(line) for line in open('world.json', 'r')]
并收到以下错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 1, in <listcomp>
File "C:\Users\name\AppData\Local\Programs\Python\Python38\lib\json\__init__.py", line 357, in loads
return _default_decoder.decode(s)
File "C:\Users\name\AppData\Local\Programs\Python\Python38\lib\json\decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "C:\Users\name\AppData\Local\Programs\Python\Python38\lib\json\decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
如何加载此文件?
我想要实现的基本上是获取人口数据并创建一个 Choropleth 并将其覆盖在我的网络地图上。
编辑:忘记了 link:
https://1drv.ms/u/s!Army95vqcKXpaooVAZU_g-VCAVw?e=vwTknq
编辑:先前 link 到 skydrive 由于 "high traffic" 而停止工作。下面是 link 到 Dropbox,希望这有效:
打开命令将return一个文件句柄,而不是字符串行。我会这样做:
with open('world.json', 'r') as fh:
data = json.load(fh)
数据然后将您的内容转换为python(列表或字典等)
好news/bad消息:
事实证明,这个文件是在我们不习惯的语言环境中编码的,json/ascii 无法理解某些字符编码。我试过了,它似乎对我有用——有一个重要的警告:
with open("world.json", "r") as fh:
contents = fh.read()
asciiContents = contents.encode("ascii", errors="ignore")
data = json.loads(asciiContents)
主要警告是只有 3 个国家/地区没有编码错误:
>>> len(data["features"])
3
也许此数据的另一个来源更接近本地英语语言环境,或者其他人可以提供以更友好的方式对外国数据进行编码的智慧...
我目前正在尝试使用 python 中的 folium 库来创建网络地图。我有一个文件 world.json
,其中包含 geo_data。我在 post 末尾向文件提供了一个 link。我尝试了以下代码:
data = [json.loads(line) for line in open('world.json', 'r')]
并收到以下错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 1, in <listcomp>
File "C:\Users\name\AppData\Local\Programs\Python\Python38\lib\json\__init__.py", line 357, in loads
return _default_decoder.decode(s)
File "C:\Users\name\AppData\Local\Programs\Python\Python38\lib\json\decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "C:\Users\name\AppData\Local\Programs\Python\Python38\lib\json\decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
如何加载此文件?
我想要实现的基本上是获取人口数据并创建一个 Choropleth 并将其覆盖在我的网络地图上。
编辑:忘记了 link:
https://1drv.ms/u/s!Army95vqcKXpaooVAZU_g-VCAVw?e=vwTknq
编辑:先前 link 到 skydrive 由于 "high traffic" 而停止工作。下面是 link 到 Dropbox,希望这有效:
打开命令将return一个文件句柄,而不是字符串行。我会这样做:
with open('world.json', 'r') as fh:
data = json.load(fh)
数据然后将您的内容转换为python(列表或字典等)
好news/bad消息: 事实证明,这个文件是在我们不习惯的语言环境中编码的,json/ascii 无法理解某些字符编码。我试过了,它似乎对我有用——有一个重要的警告:
with open("world.json", "r") as fh:
contents = fh.read()
asciiContents = contents.encode("ascii", errors="ignore")
data = json.loads(asciiContents)
主要警告是只有 3 个国家/地区没有编码错误:
>>> len(data["features"])
3
也许此数据的另一个来源更接近本地英语语言环境,或者其他人可以提供以更友好的方式对外国数据进行编码的智慧...