【问题标题】:python3 JSONDecodeError: Expecting value: line 1 column 1 (char 0)python3 JSONDecodeError:期望值:第 1 行第 1 列(字符 0)
【发布时间】:2018-06-28 23:29:39
【问题描述】:

我在 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)

有人可以帮忙吗?谢谢!

【问题讨论】:

标签: python json


【解决方案1】:
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())

根据 cmets 的建议,这可以进一步简化为:

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

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

【讨论】:

  • 您可以使用json.load(f) 稍微简化一些事情。 JSON 是一种文本格式,而不是二进制格式,因此您应该只使用 'r' (无论如何都是默认值)打开。
  • 那我没想法了,没时间了。
  • 有趣的事情。在 .load 中正确加载文件时出现相同的错误
猜你喜欢
  • 2013-05-10
  • 2019-02-25
  • 2018-08-28
  • 2020-10-10
  • 1970-01-01
  • 1970-01-01
  • 2019-07-04
  • 2020-02-03
相关资源
最近更新 更多