2011-03-12 1 views
2

은 현재 내가 [{'1': {'Score': '2', 'Class': '3'}}]에 비슷한 포함하는 파일에서 읽고 변수에 할당이 코드는, 한 간부없이 파일 목록 및 dicts 읽기 위험하다. exec을 사용하지 않고 동일한 코드를 작성하려면 어떻게해야합니까?

답변

7

사용 ast.literal_eval() :

assigns = ast.literal_eval(open(r'D:\Dropbox\Dev\Output\dict', 'r').read()) 

그것은 리터럴을 평가하는 유일한 것, 어떤 함수를 호출하거나 운영자.

1
>>> data = """[{'1': {'Score': '2', 'Class': '3'}}]""" # example; get this from file 
>>> import ast 
>>> x = ast.literal_eval(data) 
>>> x[0] 
{'1': {'Score': '2', 'Class': '3'}} 
>>> x[0]['1'] 
{'Score': '2', 'Class': '3'} 
>>> x[0]['1']['Class'] 
'3' 
>>>