我正在尝试使用 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 不存在”或类似的东西,所以我查了一下,只是在 nx_shp.py 文件中更改xrange了range它,这似乎解决了它。
xrange
range
根据我的阅读,它可能与 Python 版本(Python2 与 Python3)有关。
正如您在 python3 中一样,请使用dict.items()而不是dict.iteritems()
dict.items()
dict.iteritems()
iteritems()在python3中被删除了,所以你不能再使用这个方法了。
iteritems()
查看 Python 3.0 Wiki Built-in Changes部分,其中说明:
删除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()