【问题标题】:How to resolve simplejson.errors.JSONDecodeError: Expecting value: line 1 column 1 (char 0)?如何解决 simplejson.errors.JSONDecodeError:期望值:第 1 行第 1 列(字符 0)?
【发布时间】:2020-01-16 04:49:21
【问题描述】:

我在发出 GET 请求时随机收到以下错误。

simplejson.errors.JSONDecodeError:预期值:第 1 行第 1 列 (字符 0)

我没有收到来自 API 的速率限制错误,所以我不确定为什么会发生此错误。我假设是因为 JSON 对象是空的。

import requests


try:
    r = requests.get(url=url)
except requests.exceptions.RequestException as e:
    logging.error(e)
else:
    if r.status_code == 200:
        data = r.json()

响应通常是这样的

[['字符串', 1.2, 20.4, 8.6, 9.3, 5.6, 6.5, 8.6, 7.8, 8.8, 8.3]]

【问题讨论】:

  • 该响应不是有效的 JSON,JSON 中没有带有单引号 (') 的字符串。

标签: json python-3.x


【解决方案1】:

您的响应似乎不是 JSON,而是字符串。

如果您确定输出响应应该是 JSON(虽然不是结构化的),您可以尝试使用 ast 模块来解析它

import requests
import ast


try:
    r = requests.get(url=url)
    if r.ok:
        data = ast.literal_eval(r.content) if r.content else []
except Exception as e:
    logging.error(e)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-10
    • 1970-01-01
    • 2013-05-10
    • 2019-02-25
    • 2021-02-10
    相关资源
    最近更新 更多