我正在尝试使用 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内置更改部分,其中指出:
已删除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()