我有下面的代码,但是not isinstance()并没有像预期的那样工作。
<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,那么我的意图就是不解码,但是它并没有像预期的那样工作。任何帮助都将不胜感激!
发布于 2022-07-06 20:23:20
在Python中,没有一个是单例,所以可以这样做:
if event_payload_json['payload']['info']['work'] is not None:另外,如果event_payload_json['payload']['info']['work']只接受真实值,那么就足够像这样检查它了。
if event_payload_json['payload']['info']['work']:发布于 2022-07-06 20:42:44
错误告诉您您尝试订阅None,所以event_payload_json['payload']或event_payload_json['payload']['info']都是None。处理该错误的最简单方法是将语句放在try/ put块中并捕获TypeError。结果表明,试图查看字符串是否在None中也是一个TypeError,因此您可以同时处理所有的情况。
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:
passhttps://stackoverflow.com/questions/72889408
复制相似问题