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 도 실행 가능하니 참고하시기 바랍니다. 

 



블로그 구독하기 !!

Designed by Freepik

You may also like...

댓글 남기기

이메일은 공개되지 않습니다.