エラー: 「 'dict' オブジェクトに属性 'iteritems' がありません」 質問する

エラー: 「 'dict' オブジェクトに属性 'iteritems' がありません」 質問する

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) に関連している可能性があります。

ベストアンサー1

python3では、dict.items()代わりにdict.iteritems()

iteritems()python3 では削除されたため、このメソッドは使用できなくなりました。

Python 3.0 Wikiをご覧ください組み込みの変更セクションには次のように記載されています。

dict.iteritems()、、dict.iterkeys()および を削除しましたdict.itervalues()

代わりに、それぞれ 、 、 を使用しdict.items()dict.keys()くださいdict.values()

おすすめ記事