我試圖使用NetworkX讀取Shapefile並使用函數write_shp()來生成將包含節點和邊(以下這個例子 - https://networkx.github.io/documentation/latest/reference/readwrite.nx_shp.html),但是當我嘗試運行它給了我下面的錯誤代碼:錯誤「'字典'對象沒有屬性'iteritems'」當試圖使用NetworkX的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和安裝NetworkX通過PIP安裝。
在這個錯誤之前,它已經給了我另一個說「xrange不存在」或類似的東西,所以我查了一下,然後在nx_shp.py文件中將'xrange'改爲'range'似乎解決了它。
從我讀過的內容可能與Python版本(Python2 vs Python3)有關。
Python 3重命名爲'dict.iteritems - > dict.items'。 – Blender
哦哇我現在感覺很傻,謝謝你的回答 – friveraa
@Blender:不,它沒有將'iteritems'重命名爲'items'。前者給你一個迭代器(而3.x沒有這種方法);後者給你一個視圖(它被視爲「視圖」)。 – abarnert