首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用isinstance捕获NoneType错误

使用isinstance捕获NoneType错误
EN

Stack Overflow用户
提问于 2022-07-06 20:18:28
回答 2查看 52关注 0票数 0

我有下面的代码,但是not isinstance()并没有像预期的那样工作。

代码语言:javascript
复制
<ipython-input-94-009e9fb4f54a> in extract(self, row)
     34             event_payload_json = json.loads(row.event_payload)
     35             #print(event_payload_json['payload']['info']['work'])
---> 36             if not isinstance(event_payload_json['payload']['info']['work'], type(None)):
     37                 if "test_statement" not in event_payload_json['payload']['info']['work']:
     38                     decoded_str = base64.b64decode(<>)

TypeError: 'NoneType' object is not subscriptable

如果event_payload_json['payload']['info']['work']不是NoneType,那么我的意图就是不解码,但是它并没有像预期的那样工作。任何帮助都将不胜感激!

EN

回答 2

Stack Overflow用户

发布于 2022-07-06 20:23:20

在Python中,没有一个是单例,所以可以这样做:

代码语言:javascript
复制
if event_payload_json['payload']['info']['work'] is not None:

另外,如果event_payload_json['payload']['info']['work']只接受真实值,那么就足够像这样检查它了。

代码语言:javascript
复制
if event_payload_json['payload']['info']['work']:
票数 2
EN

Stack Overflow用户

发布于 2022-07-06 20:42:44

错误告诉您您尝试订阅None,所以event_payload_json['payload']event_payload_json['payload']['info']都是None。处理该错误的最简单方法是将语句放在try/ put块中并捕获TypeError。结果表明,试图查看字符串是否在None中也是一个TypeError,因此您可以同时处理所有的情况。

代码语言:javascript
复制
event_payload_json = json.loads(row.event_payload)
#print(event_payload_json['payload']['info']['work'])
try:
    work = event_payload_json['payload']['info']['work']
    if "test_statement" not in work:
        decoded_str = base64.b64decode(work)
except TypeError:
    pass
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72889408

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档