python3 JSONDecodeError:期望值:第1行第1列(char 0)

时间:2018-01-19 16:53:31

标签: python json

我在python3.6中遇到此错误。

我的json文件如下所示:

{
"id":"776", 
"text":"Scientists have just discovered a bizarre pattern in global weather. Extreme heat waves like the one that hit the Eastern US in 2012, leaving at least 82 dead, don't just come out of nowhere."
}

它的编码' utf-8'我在网上查了一下,它是一个有效的json文件。我试着以这种方式加载它:

p = 'doc1.json'
json.loads(p)

我也尝试了这个:

p = "doc1.json"
with open(p, "r") as f:
    doc = json.load(f)

错误是一样的:

  

JSONDecodeError:期望值:第1行第1列(字符0)

任何人都可以提供帮助?谢谢!

1 个答案:

答案 0 :(得分:2)

p = 'doc1.json'
json.loads(p)

你要求json模块加载字符串'doc1.json',这显然是无效的json,它是一个文件名。

你想打开文件,阅读内容,然后使用json.loads()加载内容:

p = 'doc1.json'
with open(p, 'r') as f:
    doc = json.loads(f.read())

正如评论中所建议的那样,这可以进一步简化为:

p = 'doc1.json'
with open(p, 'r') as f:
    doc = json.load(f)

其中jon.load()获取文件句柄并为您读取。