【问题标题】:Expecting 'STRING', got 'undefined' in request response期待“字符串”,在请求响应中得到“未定义”
【发布时间】:2021-05-26 13:56:39
【问题描述】:

我正在使用 requests 模块来与 API 交互:


response = requests.get(<URL>)
my_dict = response.json()

my_dict var 看起来像这样(我已经简化了字典):


{'annotations': 'list'}

问题是由于Expecting 'STRING', got 'undefined',响应没有通过json linter,我假设它单引号'会产生这个问题。

任何想法如何解决这个问题?

更新:

Grafana上传(其实我用的是API,但是结果是同一个GUI或者API)

jsonlint 也会抛出同样的错误:https://jsonlint.com/

【问题讨论】:

  • 所有网站都出现这种情况吗?如果没有,请说明您在哪些网站上遇到了问题
  • 问题已更新。谢谢
  • my_dict 是 Python 字典,而不是 JSON。这就是为什么它有单引号

标签: python json python-requests


【解决方案1】:

response.json() 实际上会解析响应。由于返回成功,您已经知道它是有效的 JSON。如果它无效,您必须修复您访问的 API 的代码

如果您只想要 JSON 响应正文,请使用 response.text

【讨论】:

  • Daaam,你说得对,实际上我最初将 response.text 用于字符串,response.content 用于字节,但我选择了响应内置 response.json() 以避免每次都这样做json.loads(response.text)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-06-22
  • 2016-07-04
  • 1970-01-01
  • 1970-01-01
  • 2015-12-14
  • 2014-12-20
  • 1970-01-01
相关资源
最近更新 更多