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中,还有诸如
iter
keys等也需要去掉iter前缀。
参考资料:
- https://blog.csdn.net/guangmingngm/article/details/80943063
- https://github.com/pallets/jinja/issues/150