Python/Exam Code

파이썬의 특정 자료형의 형식을 가진 문자열을 리스트로 변환하는 방법

728x90
반응형

아래와 같은 파이썬의 여러 자료형의 형태를 가지고 있는 문자열을 특정 자료형으로 형변환해야할 경우 ast 라이브러리의 literal_eval함수를 이용해 형변환할 수 있습니다.

빌트인 함수인 eval함수와의 차이점은 eval함수는 사용자의 입력이 자유롭게 가능한 경우 입력값으로 시스템에 공격을 가할 수 있다는 보안적 취약점을 가지고있는 반면, ast모듈의 literal_eval함수는 시스템에 공격을 가할수 없으며 단순히 표현식만을 변환하기에 보안적으로 안전합니다.

리스트의 형태를 가진 문자열을 리스트형으로 변환하는 경우

import ast
string = "['a', 'b', 'c']"
stringToList = ast.literal_eval(string)
print(stringToList)
print(type(stringToList))

딕셔너리 형태를 가진 문자열을 딕셔너리형으로 변환하는 경우

import ast
string = "{123: False, 456: True, 789: False}"
stringToDict = ast.literal_eval(string)
print(stringToDict)
print(type(stringToDict))

튜플 형태를 가진 문자열을 튜플형으로 변환하는 경우

import ast
string = "(1, 2)"
stringToTuple = ast.literal_eval(string)
print(stringToTuple)
print(type(stringToTuple))

 

728x90
반응형