解决Python2代码移植到Python3报错:AttributeError: 'collections.OrderedDict' object has no attribute 'iteritems

1. 问题描述

如题,将Python 2.x代码迁移到Python 3.x时报错:

AttributeError: 'collections.OrderedDict' object has no attribute 'iteritems'

报错指向的Python 2语句写法为:

for k,p in child._parameters.iteritems():


2. 解决方法

上述出错的原因是iteritems在Python 3中被移除了,因此需要换一种写法访问队列中的每一项,在Python 3中的写法应该改为:

for k,p in child._parameters.items():

即去掉iter前缀即可。

进一步延伸: 在Python 3中,还有诸如iterkeys等也需要去掉iter前缀。




参考资料:

  • https://blog.csdn.net/guangmingngm/article/details/80943063
  • https://github.com/pallets/jinja/issues/150

你可能感兴趣的:(Python,Debug)