반응형
질문
나는 NetworkX를 사용하여 Shapefile을 읽고 write_shp()
함수를 사용하여 노드와 엣지를 포함하는 Shapefile을 생성하려고 시도하고 있습니다. 그러나 코드를 실행하려고하면 다음과 같은 오류가 발생합니다:
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
로 변경했더니 해결되었습니다.
내가 읽은 바에 따르면 이것은 Python 버전 (Python2 대 Python3)과 관련이 있을 수 있다고 합니다.
답변
파이썬3에서는 dict.items()
를 사용하십시오. dict.iteritems()
대신
iteritems()
는 파이썬3에서 제거되었으므로 이 메서드를 더 이상 사용할 수 없습니다.
Python 3.0 위키의 Built-in Changes 섹션을 확인하십시오. 거기에는 다음과 같이 명시되어 있습니다:
dict.iteritems()
,dict.iterkeys()
, 그리고dict.itervalues()
를 제거했습니다.대신 각각
dict.items()
,dict.keys()
, 그리고dict.values()
를 사용하십시오.
반응형
댓글