3

モジュールを呼び出そうとしていますが、何らかの理由でエラーが発生します。data.pyにはアイテムのリストが含まれており、main.pyにはアイテムを繰り返して印刷しようとしていますが、以下のエラーが発生します。

エラー

Import error: No module named Basics

data.pyとmain.pyはどちらもc:/ python27 /basics/にあります

data.py

bob={'name':'bobs mith','age':42,'salary':5000,'job':'software'}
sue={'name':'sue more','age':30,'salary':3000,'job':'hardware'}
people=[bob,sue]

main.py

from Basics import data

if __name__ == '__main__':
    for key in people:
        print(key, '=>\n  ', people[key])

インポートデータを指定すると、次のエラーが発生します

名前エラー:名前'人'が定義されていません。

アップデート:

新しいコード:

from Basics import data

if __name__ == '__main__':

    for key in data.people:
        print(key, '=>\n  ', data.people[key])

TypeError:listインデックスは、dictではなく整数である必要があります

4

3 に答える 3

5

__init__.pyBasicsディレクトリに必要になります

PYTHON_PATHまたはにそのディレクトリが必要ですsys.path

人を使うには、これらのいずれかを行う必要があります。

from Basics.data import people

または

from Basics import data
print data.people
于 2012-06-01T21:15:24.550 に答える
1

でし__init__.pyc:/python27/basics/か?

Basicsまた、インポートの場合をディレクトリの場合と一致させることはおそらく良い習慣basicsです。私が思うに、それはウィンドウでは問題ではありませんが、それは確かにUNIXの下にあります。

于 2012-06-01T21:17:04.013 に答える
1

2番目の部分では、「people」オブジェクトは2つの辞書を含むリストです。だからあなたはこれをしたい:

for person in people:
  for key in person:
     print(key, '=>\n  ', person[key])
于 2012-06-02T11:12:59.283 に答える