2016-10-20 4 views
0

나는 파이썬 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하고 필요할 때로드하십시오. 그렇게하려면 파이썬의 피클 모듈을 사용할 수 있습니다.