在Python中加载JSON文件时出错

在Python中加载JSON文件时出错,python,json,Python,Json,我试图学习如何在Python中读取json文件,但我不确定如何解释我得到的错误。我已经在下面发布了我的代码以及我得到的错误消息。有什么想法吗?谢谢 import json filename = 'population.json' with open(filename) as f: pop_data = json.load(f) for pop_dict in pop_data: if pop_dict['Year'] == '2010': country_name

我试图学习如何在Python中读取json文件,但我不确定如何解释我得到的错误。我已经在下面发布了我的代码以及我得到的错误消息。有什么想法吗?谢谢

import json
filename = 'population.json'
with open(filename) as f:
    pop_data = json.load(f)
for pop_dict in pop_data:
    if pop_dict['Year'] == '2010':
        country_name = pop_dict['Country Name']
    population = pop_dict['Value']
    print(country_name + ":" + population)
错误消息--

C:\Anaconda\python.exe "C:/PyCharm/Data Visual/Pop.py"
Traceback (most recent call last):
  File "C:/PyCharm/Data Visual/Pop.py", line 4, in <module>
    pop_data = json.load(f)
  File "C:\Anaconda\lib\json\__init__.py", line 299, in load
    parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw)
  File "C:\Anaconda\lib\json\__init__.py", line 354, in loads
    return _default_decoder.decode(s)
  File "C:\Anaconda\lib\json\decoder.py", line 339, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "C:\Anaconda\lib\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
C:\Anaconda\python.exe“C:/PyCharm/Data Visual/Pop.py”
回溯(最近一次呼叫最后一次):
文件“C:/PyCharm/Data Visual/Pop.py”,第4行,在
pop_data=json.load(f)
文件“C:\Anaconda\lib\json\\ uuuuu init\uuuuu.py”,第299行,已加载
parse_常量=parse_常量,object_pairs_hook=object_pairs_hook,**千瓦)
文件“C:\Anaconda\lib\json\\ uuuuu init\uuuuu.py”,第354行,加载
返回\u默认\u解码器。解码
文件“C:\Anaconda\lib\json\decoder.py”,第339行,解码
obj,end=self.raw\u decode(s,idx=\u w(s,0.end())
文件“C:\Anaconda\lib\json\decoder.py”,第357行,原始解码
从None引发JSONDecodeError(“预期值”,s,err.value)
json.decoder.JSONDecodeError:预期值:第1行第1列(字符0)
进程已完成,退出代码为1

population.json文件中有什么?可能是Unicode吗?请查看JSON文件的第一个字符,如错误消息所示。它必须是
[
{
。如果不是,解析将失败。如果该文件在记事本中看起来正常,我可以想到的一件事是UTF-16文件中有一个BOM标记。您可以发布几行“population.json”文件吗?这将有助于缩小问题范围,否则有多种可能性。用于验证您的json firstCountry Name、Country code、Year、Value Arab World、ARB阿拉伯世界,阿拉伯世界,阿拉伯世界,阿拉伯世界,阿拉伯世界,阿拉伯世界,阿拉伯世界,阿拉伯世界,阿拉伯世界