0

Python で共通または集中型の辞書を使用する方法を探しています。同じデータセットで機能するスクリプトがいくつかありますが、異なることを行います。これらのスクリプト (楽器名など) には、複数のスクリプトで使用される辞書があります。変更を加えたり値を追加したりする場合は、すべてのスクリプトで確実に行う必要がありますが、これはもちろん苦痛であり、エラーが発生しやすくなります。

1 つの辞書を持っていて、それをすべての異なるスクリプトで使用する可能性はありますか?

どんな助けでも大歓迎です - ありがとう。

4

3 に答える 3

2

同じプロセスで実行されている複数のスクリプトについて話しているのか、同じデータを共有する必要がある複数のプロセスについて話しているのか、正確にはわかりませんでした。

いくつかのプロセス:

複数のスクリプト (異なるプロセス) 間でデータを共有する最も簡単な方法は、単純なファイル データベースを使用することだと思います。

SQLite3 は Python にバンドルされているので、これは良い選択です。

単一プロセス:

同時に (同じプロセス内で) 実行される複数のメソッドへのアクセスを集中化するだけの場合は、1 つのスクリプトで辞書を宣言し、構造を複製することなく、他のすべてのメソッドがその 1 つの場所にアクセスできるようにします。基本的に、この dict をスクリプトで宣言し、それを他のすべてのスクリプトにインポートします。

于 2013-05-15T11:22:29.503 に答える
1

Some options:

  • You could use a shared shelved file. See http://docs.python.org/2/library/shelve.html
  • You could store configuration information in a JSON/YAML or similar file
  • It may be overkill for your usecase, but something like http://redis.io (or a lightweight key store) database will enable you to use a dict-like interface to persist keys across processes and be available to other languages.
于 2013-05-15T11:45:58.590 に答える
1

このような状況でgeneral_values.pyは、プロジェクト ルートにファイルがあります。

リストとリストdictionariesはすべて参照を使用して値を格納するため、同じスクリプトを使用してもdictlistのスクリプトを使用しても、メモリに格納された同じ単一のデータを使用するため、問題は発生しません。

同様に:

main_values.py

    my_dict = {1:1}

some.py

    import main_values
    main_values.my_dict[2] = 2

other.py

    import main_values
    print  main_values.my_dict

    >> {1:1, 2:2}
于 2013-05-15T11:29:39.147 に答える