ast.literal_eval – String Python Object를 Python 문법으로..
ast(Abstract Syntax Trees) 모듈은 Python Grammer로 만들어진 String 들을 Python Application에서 사용될 수 있게 도와주는 라이브러리 입니다.
저는 주로 literal_eval 함수를 많이 쓰는데 Config 파일의 json 데이터를 Dictonary로 불러올 일이 있을 때 많이 사용합니다.
import ast pythonString = '''{ "lists":[1, 3 ,4, 5], "tuples":(1,2,3) }''' pythonDict = ast.literal_eval(pythonString) print(pythonDict['lists']) print(pythonDict['tuples'])
literal_eval 이 변경할 수 있는 자료형입니다.
- Strings
- Numbers
- tuples
- lists
- dicts
- booleans
- None
이 자료형 이외에 ==, > 같은 Operater는 변환시키지 못하고 에러를 뿜습니다.
File "c:\Python36\lib\ast.py", line 35, in parse return compile(source, filename, mode, PyCF_ONLY_AST) File "<unknown>", line 1 a=7 ^ SyntaxError: invalid syntax
python built-in function인 eval을 사용하면 operator 도 실행 가능하니 참고하시기 바랍니다.
블로그 구독하기 !!