【问题标题】:Return form of 'get' request. Getting information in website which is written in json form'get' 请求的返回形式。在以 json 形式编写的网站中获取信息
【发布时间】:2021-02-27 21:47:54
【问题描述】:

我的问题

我多次尝试从url获取信息,在网站信息是用json形式写的。而且我发现1,2,3是错误的形式。

request.get 返回什么?我想知道为什么 1、2 和 3 不起作用。

我怎样才能将 json 转换为字典形式(不像第四种情况)?我也想知道其他方法。不同于

response = response.json()

我的代码(1,2,3 错误,4 正确)

1.TypeError:JSON对象必须是str、bytes或bytearray,而不是Response

response = requests.get(URL)
response = json.loads(response)

2.TypeError:JSON对象必须是str、bytes或bytearray,而不是Response

response = requests.get(URL)
response = json.load(response)

3.AttributeError: 'Response' 对象没有属性'read'

response = requests.get(URL)
response = response.read()
  1. 正确一个
response = requests.get(URL)
response = response.read()

【问题讨论】:

标签: json python-3.x web


【解决方案1】:

request.get 返回什么?

根据documentation,返回一个requests.Response对象。

以及如何将 json 转换为字典形式

response = response.json() 有什么问题?

您使用json.load()json.loads() 的尝试失败了,因为您向它传递了Response 对象,而不是strbytesbytearray。请务必完整阅读documentation

response.text 为您提供响应的str,这正是您真正想要的。 response.read() 引发 AttributeError 因为没有 read() 方法用于 requests.Response 对象。同样,请确保您完全阅读了文档。

这就是你想要的:json.loads(response.text)

【讨论】:

    猜你喜欢
    • 2023-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-03
    • 1970-01-01
    • 2018-10-11
    • 2010-11-15
    • 2020-09-27
    相关资源
    最近更新 更多