首页 > 解决方案 > Python3中的字符串比较

问题描述

我有一个返回 True、False 和“”的休息 api。我在我的 requests.content 中收到了这个,我得到了字节的类型。我将它们转换为字符串,然后尝试进行比较。但是最后一个 else 块执行留下了第一个和第二个。

import requests
headers = {'Accept': '*/*'}
response = requests.get('http://{IP}/status', headers=headers)
status = response.content
status = str(status)
print(status)
# status returns "True", "False", ""
if (status == "True"):
    print ('Admin approved this request')
elif (status == "False"):
    print ('Admin disapproved this request')
else:
    print ('No response from admin')

得到:-'没有来自管理员的回应'在所有情况下

标签: python-3.xstringif-statementcomparison

解决方案


仔细检查您的回复格式。如果它采用 JSON 之类的格式,您可能需要以键/值对的形式访问实际响应(“True”、“False”、“”)。

此外,您可以简单地response.text使用 UTF-8 编码来获取字符串,而不是转换response.content为字符串。 https://realpython.com/python-requests/#content


推荐阅读