Python ';非类型';对象没有属性';遵守';
我是python新手,我正在开发一个带有RaspberryPi和passport eye模块的passport扫描仪。最后,它打印出扫描图像的结果。但是,如果扫描仪无法检测到MRZ代码,我还想打印结果 我尝试了一些方法,但无法解决问题,简而言之,下面是一个示例:Python ';非类型';对象没有属性';遵守';,python,printing,raspberry-pi,nonetype,Python,Printing,Raspberry Pi,Nonetype,我是python新手,我正在开发一个带有RaspberryPi和passport eye模块的passport扫描仪。最后,它打印出扫描图像的结果。但是,如果扫描仪无法检测到MRZ代码,我还想打印结果 我尝试了一些方法,但无法解决问题,简而言之,下面是一个示例: mrz = read_mrz("test.jpg") mrz_data = mrz.to_dict() if mrz.to_dict == None: print("Invalid document&q
mrz = read_mrz("test.jpg")
mrz_data = mrz.to_dict()
if mrz.to_dict == None:
print("Invalid document")
else:
print(mrz_data["names"])
错误
mrz_data=mrz.to_dict()AttributeError:'NoneType'对象没有属性'to_dict'
编辑:当错误为“非类型”时,是否有方法打印对象没有属性“to_dict”-
返回的对象(除非它是None,这意味着没有检测到ROI)包含从MRZ提取的字段以及一些元信息
看起来您正在使用的图像返回None
。在第2行中,当您在None
上调用to_dict()
时,它抛出异常“NoneType”对象没有属性“to_dict”
这可以按如下方式进行修复
if mrz == None:
print("Invalid document")
else:
print(mrz.to_dict()["names"])
不确定这是否会导致任何问题,但编写
something is None
而不是something==None
是一种很好的做法。您必须对None
的可选项值执行检查–在使用该值后进行检查为时已晚。因此,如果mrz为None,那么应该有一些:
在尝试读取之后。谢谢Karan!这对我有用。