1. ホーム
  2. python

[解決済み] エラーです。" 'dict' オブジェクトには 'iteritems' という属性がありません "

2022-03-18 19:36:33

質問

NetworkXを使って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を使っていて、NetworkXをpip installでインストールしました。

このエラーの前にも、"xrange does not exist"とかいうエラーが出たので、調べてみたら、単に xrangerange をnx_shp.pyファイルに追加すると解決したようです。

私が読んだところでは、Pythonのバージョン(Python2 vs Python3)に関係している可能性があるようです。

解決方法は?

Python3 を使っているので dict.items() の代わりに dict.iteritems()

iteritems() は python3 で削除されたので、このメソッドはもう使えません。

Python 3.0 Wiki を見てみましょう。 組み込みの変更点 のセクションに記載されています。

削除された dict.iteritems() , dict.iterkeys() および dict.itervalues() .

代わりに、以下を使用します。 dict.items() , dict.keys() および dict.values() をそれぞれ作成します。