가볍게 배우고 깊게 즐기고 오래 남기기

Python Tip || ["ABC", "DEF"] 리스트형태의 str -> list로 바꿀때 본문

Programming & Tip/Python

Python Tip || ["ABC", "DEF"] 리스트형태의 str -> list로 바꿀때

Awesomist 2024. 4. 12. 08:50
728x90
["ABC", "DEF"] 형태가 str으로 떨어질떄 list로 만들려면?
그냥 list로 하는 경우 형태소 한 글자씩 쪼개지는 불상사가 생긴다..
 

리스트의 모양을 그대로 살려

Python 리스트 객체로 변환하려면, ast.literal_eval 또는 json.loads를 사용할 수 있다.

 

 

방법 1: ast.literal_eval 사용

ast.literal_eval 함수는 문자열이 표현하는 Python 리터럴 구조를 평가하여 해당 Python 객체를 반환합니다.

eval()보다 안정적인 전환방법이고, 단순한 데이터 구조(리스트, 딕셔너리, 숫자, 문자열 등)에 적합하다.

import ast
str_list = '["ABC", "DEF"]' #그냥 list로 하는 경우 한 글자씩 쪼개진다.
python_list = ast.literal_eval(str_list)

print(python_list) # ['ABC', 'DEF']

 

 

2: json.loads 사용

JSON 모듈의 loads 함수로도 리스트화가 가능하다.

다만 return print로 처리할 때는 정상적으로 출력물을JSON 형식의 문자열을 Python 객체로 변환합니다.

 

 

import json

str_list = '["ABC", "DEF"]' #그냥 list로 하는 경우 한 글자씩 쪼개진다.
python_list = json.loads(str_list)

print(type(python_list))    # <class 'list'>
print(python_list)          # ['ABC', 'DEF']

 

반응형
Comments