【发布时间】:2020-06-01 22:44:56
【问题描述】:
所以我使用vininfo 仅使用它们的 VIN 从外部数据库中填充有关某些单元的信息,并使用这些数据将其转换为 dict 使用 annotate() 或 annotate().items() 但脚本崩溃了
TypeError: cannot unpack non-iterable NoneType object
尝试使用hasattr(obj, 'attr'),但它在那里爆炸并出现相同的错误。无法使用 for..in 进行迭代,因为该对象不是可迭代的 TypeError: 'NoneType' object is not iterable。
我尝试了具有相同 VIN 的 CLI 版本,它吐出相同的 cannot unpack 错误。
问题是我用来测试的这个 VIN 缺少一些数据 .transmission 准确地说(但我猜它会发生在任何其他字段),可能是由于填写注册表时拼写错误,所以我'试图忽略这个字段,但我不能,因为它不存在!
VIN 是:1NKZXPEX4GJ109010
Traceback 如下:
Traceback (most recent call last):
File "c:\program files\python37\lib\runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "c:\program files\python37\lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "C:\Program Files\Python37\Scripts\vininfo.exe\__main__.py", line 7, in <module>
File "c:\program files\python37\lib\site-packages\vininfo\cli.py", line 51, in main
entry_point(obj={})
File "c:\program files\python37\lib\site-packages\click\core.py", line 764, in __call__
return self.main(*args, **kwargs)
File "c:\program files\python37\lib\site-packages\click\core.py", line 717, in main
rv = self.invoke(ctx)
File "c:\program files\python37\lib\site-packages\click\core.py", line 1137, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "c:\program files\python37\lib\site-packages\click\core.py", line 956, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "c:\program files\python37\lib\site-packages\click\core.py", line 555, in invoke
return callback(*args, **kwargs)
File "c:\program files\python37\lib\site-packages\vininfo\cli.py", line 35, in show
out(details)
File "c:\program files\python37\lib\site-packages\vininfo\cli.py", line 24, in out
for k, v in annotatable.annotate().items():
File "c:\program files\python37\lib\site-packages\vininfo\common.py", line 17, in annotate
value = getattr(self, attr_name, no_attr)
File "c:\program files\python37\lib\site-packages\vininfo\details\_base.py", line 53, in __get__
return DetailWrapper(instance, self)
File "c:\program files\python37\lib\site-packages\vininfo\details\_base.py", line 20, in __init__
attr_name, attr_idx = detail.source
TypeError: cannot unpack non-iterable NoneType object
【问题讨论】:
-
你检查过这个问题吗? stackoverflow.com/questions/1952464/…
-
你能分享你代码的相关部分吗?
标签: python iterable nonetype iterable-unpacking