Próbuję użyć NetworkX do odczytania pliku Shapefile i użyć funkcji write_shp()
do wygenerowania plików Shapefile, które będą zawierać węzły i krawędzie, ale gdy próbuję uruchomić kod, pojawia się następujący błąd:
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'
Używam Python 3.4 i zainstalowałem NetworkX przez pip install.
Przed tym błędem dał mi już inny, który powiedział „xrange nie istnieje” lub coś w tym rodzaju, więc spojrzałem na to i po prostu zmieniłem xrange
na range
w pliku nx_shp.py, który wydawał się go rozwiązać.
Z tego, co przeczytałem, może to być związane z wersją Pythona (Python2 vs Python3).
iteritems
na items
. Ten pierwszy dał ci iterator (a 3.x nie ma takiej metody); ten ostatni daje widok (który został przeniesiony do wersji 2.7 as viewitems
).
dict.iteritems -> dict.items
.