Python TypeError:类型为“filter”的对象没有len()

Python TypeError:类型为“filter”的对象没有len(),python,arrays,list,Python,Arrays,List,在执行Python脚本时,我收到以下错误 Traceback (most recent call last): File "/usr/local/bin/jira-cycle-extract", line 10, in <module> sys.exit(main()) File "/usr/local/lib/python3.7/site-packages/jira_cycle_extract/cli.py", line 144, in main cycle_dat

在执行Python脚本时,我收到以下错误

Traceback (most recent call last):
File "/usr/local/bin/jira-cycle-extract", line 10, in <module>
    sys.exit(main())
File "/usr/local/lib/python3.7/site-packages/jira_cycle_extract/cli.py", line 144, in main
    cycle_data = q.cycle_data(verbose=args.verbose)
File "/usr/local/lib/python3.7/site-packages/jira_cycle_extract/cycletime.py", line 141, in cycle_data
for snapshot in self.iter_changes(issue, False):
File "/usr/local/lib/python3.7/site-packages/jira_cycle_extract/query.py", line 114, in iter_changes
last_status = status_changes[0].fromString if len(status_changes) != 0 else issue.fields.status.name
TypeError: object of type 'filter' has no len()
可以将下一个函数与生成器表达式和默认值一起使用。您问题中的代码可以重新编写为:

last_status = next((h.fromString for c in issue.changelog.histories for h in c.items if h.field == 'status'), issue.fields.status.name)
last_resolution = None

您试图使用的软件包不支持Python 3。@user2357112这两个链接可以帮助您:1>2>。但是,将其转换为列表或迭代将耗尽过滤器,因此在我看来,检查其是否为空是您应该采取的方法。。。
last_status = next((h.fromString for c in issue.changelog.histories for h in c.items if h.field == 'status'), issue.fields.status.name)
last_resolution = None