接口自动化时,执行response.json()时经常报错

问题

将响应体数据使用.json()转化时报错

原因

.json()转化时,需要response 响应体里存在符合json结构的数据

讲解

json数据和json() json().load() json().dump()的关系

  • .json() 用于将 HTTP 响应的 JSON 格式数据转换为 Python 对象。
  • .text() 用于获取 HTTP 响应的文本内容。
  • json.dump() 用于将 Python 对象序列化为 JSON 字符串并保存到文件。
  • json.load() 用于从文件中读取 JSON 数据并解析为 Python 对象。
  1. .json():这是一个 HTTP 响应对象的方法,用于将响应中的 JSON 格式数据自动解析为 Python 对象(通常是字典)。在使用 requests 库发送 HTTP 请求后,通过调用 .json() 方法可以方便地将响应的 JSON 数据转换为 Python 对象,以便进一步处理和操作

  2. json.load():这是 json 模块中的一个方法,用于从文件中读取 JSON 数据并解析为 Python 对象。与 .json() 方法不同,json.load() 主要用于从磁盘文件中读取 JSON 数据并将其转换为 Python 对象,而不是从 HTTP 响应中解析。

with open(‘data.json’, ‘r’) as file:
data = json.load(file)
print(data)

  • .json() 用于从 HTTP 响应中解析 JSON 数据;
  • json.load() 用于从文件中读取 JSON 数据并解析为 Python 对象。

此外,如果你有一个 JSON 格式的字符串,也可以使用 json.loads() 方法将其解析为 Python 对象

response 是一个 HTTP 响应对象,而不是一个包含 JSON 数据的字典。

当你使用 response.json() 方法时,该方法会将响应中的 JSON 数据解析为 Python 对象(通常是字典),然后将这个对象返回给你。所以,在你的代码中,json_data 是一个包含了解析后 JSON 数据的字典,你可以直接通过键来访问其中的值。

.json() 是将http对象中的json数据,转成python对象

而json.load(‘xxxx’) 则是用于字符串转json返回,json数据