首页 > 解决方案 > 减去python请求

问题描述

我正在使用 python 向 API 发送请求以提取传感器数据。

我发送的第一个请求是测量传感器的当前时间。

第二个请求是测量自传感器识别运动以来的时间量。

我希望用第二个减去第一个请求。

下面是我正在使用的提取数据的方法,效果很好。我只是想不通为什么当我尝试减去它们时它不起作用。

任何帮助将非常感激。

url = "IPADDRESS"
payload={}
headers = {
  "Authorization":"Password"
}
response1 = requests.request("GET", url, headers=headers, data=payload, verify=False)

print('Current Time: ', response1.text)


url = "IPAddress"
payload={}
headers = {
  "Authorization": "Password"
}
response = requests.request("GET", url, headers=headers, data=payload, verify=False) #HTTP request
print('Time since last motion: ', response.text)


updatedtime = response1.text
occupancelevel = response.text


result = updatedtime - occupancelevel

print(result)

标签: pythonpython-requestshttp-headers

解决方案


减法仅适用于某些数据类型。.__sub__(具体来说,只能减去具有方法的对象。)

我不确定是什么.data,根据文档它不存在,但如果它存在,它显然不是可减去的。

如果您从端点返回一个简单的数字,您可以先转换它:

response = float(response1.data) - float(response2.data)

否则,您将不得不深入研究响应类型什么,并相应地工作。(提示:如果你不知道,可能是 json。)

顺便说一句,如果我认为没有 undeclared .data,您想要.text.json()得到响应。

参考

https://docs.python-requests.org/en/latest/api/#requests.Response


推荐阅读