在 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,希望这有效:

https://www.dropbox.com/s/gmm8db0g03rc7cv/world.json?dl=0

打开命令将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

也许此数据的另一个来源更接近本地英语语言环境,或者其他人可以提供以更友好的方式对外国数据进行编码的智慧...