【发布时间】:2021-02-19 17:20:42
【问题描述】:
我正在使用 python3 请求从 API 中提取数据。然后我 json 响应。其中一个字段可以具有字符串值或为空。从一个简单的测试开始,我刚刚将值打印到屏幕上。但是,当值为 null 时,我无法打印,因为 NoneType 类并且它失败了。如果我打印出类型,我会看到“
代码如下。我正在检查响应是否为无,并且仅在它不为空时打印出来。但是,当 jResponse["variable"] 的值为 null 或 none 时,我现在收到 TypeError: 'NoneType' object is not subscriptable 错误并指向 if 语句行。
response = requests.request("GET", url, headers=headers, data = payload)
jResponse = response.json()
if jResponse["variable"] is not None:
print(jResponse["variable"])
上面的结果会打印出变量数据,如果它不为null,但是当它为null时就失败了。
我认为is not None 是检查python null 的正确方法。
编辑 - 请求响应:
"response": {
"variable1": value,
"variable2": value,
"variable3": value,
"section1": {
"variable1": value,
"variable2": null,
第 1 节中的变量 2 是我正在检查的变量,有时可能为空。所有其他变量都得到了很好的响应。
【问题讨论】:
-
你想要
if jResponse.get("variable"):。 -
让我试试。这是否记录在任何地方的 python 请求中?
-
在上面编辑以获取返回的响应。所有其他变量都返回正常,我正在收集他们的所有数据。 section1:variable2 是可以为 null 的,是我需要检查的,也是导致我出现问题的。如何调整 .get() 以检查该变量?
标签: python null typeerror nonetype