2016-10-20 8 views
0

私は多くのpython dictを含むファイルを持っています。私は、ユーザーの要求に応じてその一部をロードしたい。私はそれをどうやってやればいいの?Dynamicalyはファイルから特定のdictをインポートします

my_dicts_file.py:

A = { 'value_a': 0, 
     'value_b':'aa'} 

B = { 'value_a': 10, 
     'value_b':'bb', 
     'value_c':'Nd'} 

.... 
.... 

Z = { 'value_4': 50, 
     'value_t':'0d'} 

次のコードは、私がすることができます

from my_dicts_file import * 
+0

私はそれは不可能だと思う、と言います。 'from A import B 'を使うと、メソッドやクラスを一つしかインポートすることができません。変数ではありません – Valeriy

+1

@Valeriy:それは間違っています。もちろん、変数をインポートすることもできます。 – Matthias

答えて

0

私がそれを直接インポートできるかどうかはわかりませんが、ここでいくつかの仮説を作成します。あなたは、変数Aを印刷したいしている場合

import imp 
my_dict = type('lambdaobject', (object,), {})() 
for i in ['A', 'C']: 
    src = imp.load_source(i, 'my_dicts_file.py') 
    setattr(mydict, i, getattr(src, i)) 

はあなただけ

print my_dict.A 
0

で可能な場合は、すべてのdictsをロードしたくない

for i in ['A','C']: 
    from my_dicts_file import i 

を動作しません。変数をpickleし、必要に応じて読み込みます。これを行うには、Pythonのpickleモジュールを使用することができます

関連する問題