首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >错误:“'dict‘对象没有’iteritem‘属性”

错误:“'dict‘对象没有’iteritem‘属性”
EN

Stack Overflow用户
提问于 2015-05-24 07:14:54
回答 4查看 511.8K关注 0票数 529

我尝试使用NetworkX读取Shapefile,并使用函数write_shp()生成包含节点和边的Shapefile,但当我尝试运行代码时,它给出了以下错误:

代码语言:javascript
复制
Traceback (most recent call last):   File
"C:/Users/Felipe/PycharmProjects/untitled/asdf.py", line 4, in
<module>
    nx.write_shp(redVial, "shapefiles")   File "C:\Python34\lib\site-packages\networkx\readwrite\nx_shp.py", line
192, in write_shp
    for key, data in e[2].iteritems(): AttributeError: 'dict' object has no attribute 'iteritems'

我使用的是Python3.4,通过pip install安装了NetworkX。

在这个错误之前,它已经给了我另一个写着"xrange不存在“或者类似的东西,所以我查了一下,在nx_shp.py文件中把xrange改成了range,这似乎解决了这个问题。

据我所知,它可能与Python版本(Python2与Python3)有关。

EN

回答 4

Stack Overflow用户

发布于 2016-05-19 23:03:20

我有一个类似的问题(使用3.5),每天都会损失1/2,但这里有一个有用的东西-我退休了,正在学习Python,所以我可以帮助我的孙子(12岁)。

代码语言:javascript
复制
mydict2={'Atlanta':78,'Macon':85,'Savannah':72}
maxval=(max(mydict2.values()))
print(maxval)
mykey=[key for key,value in mydict2.items()if value==maxval][0]
print(mykey)
YEILDS; 
85
Macon
票数 6
EN

Stack Overflow用户

发布于 2016-09-11 10:31:48

在Python2中,dictionary.iteritems()dictionary.items()更高效,因此在Python3中,dictionary.iteritems()的功能已迁移到dictionary.items(),并删除了iteritems()。所以你会得到这个错误。

在Python3中使用dict.items(),与Python2的dict.iteritems()相同。

票数 5
EN

Stack Overflow用户

发布于 2019-04-05 09:00:48

.iteritems()的目的是通过在循环时一次产生一个结果来使用更少的内存空间。我不知道为什么Python3版本不支持iteritems(),尽管它已经被证明比.items()更有效

如果您想包含同时支持PY版本2和3的代码,

代码语言:javascript
复制
try:
    iteritems
except NameError:
    iteritems = items

如果你在其他系统中部署你的项目,并且你不确定PY版本,这会很有帮助。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30418481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档