我正在尝试使用NetworkX读取Shapefile并使用该函数write_shp()生成将包含节点和边的Shapefile,但是当我尝试运行代码时,出现以下错误:
write_shp()
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'
我正在使用Python 3.4,并通过pip install安装了NetworkX。
在发生此错误之前,它已经给我另一个提示“ xrange不存在”或类似名称,因此我进行了查找,然后将其更改xrange为rangenx_shp.py文件,似乎可以解决该问题。
xrange
range
根据我的阅读,它可能与Python版本(Python2 vs Python3)有关。
正如您在python3中一样,请使用dict.items()代替dict.iteritems()
dict.items()
dict.iteritems()
iteritems() 已在python3中删除,因此您无法再使用此方法。
iteritems()
看一下Python 3.0 Wiki的“内置更改”部分,其中指出:
删除dict.iteritems(),dict.iterkeys()和dict.itervalues()。 相反:使用dict.items(),dict.keys()和dict.values() 分别。
删除dict.iteritems(),dict.iterkeys()和dict.itervalues()。
dict.iterkeys()
dict.itervalues()
相反:使用dict.items(),dict.keys()和dict.values() 分别。
dict.keys()
dict.values()