문자열을 dict로 바꿀 수 있나요?
조회수 10959회
s
= "{'muffin' : 'lolz', 'foo' : 'kitty'}"
-> {'muffin' : 'lolz', 'foo' : 'kitty'}
이런 식으로 스트링을 dict로 바꾸고 싶습니다.
동료 개발자가 모든 함수에서 string을 return 하게 만들어놨는데
문자열을 dict타입으로 바꿀 때
eval()
을 쓰지 않고 어떻게 할 수 있나요?
1 답변
-
파이썬 2.6 이상에서는 ast모듈에 ast.literal_eval(node_or_string)이 추가되었습니다.
ast.literal_eval(node_or_string)은
eval()
보다 안전한 방법으로node
또는string
을 인자로 받아 적절한strings, bytes, numbers, tuples, lists, dicts, sets, booleans, None
값을 return 해 줍니다.사용 예:
import ast ast.literal_eval("{'muffin' : 'lolz', 'foo' : 'kitty'}") # = {'muffin': 'lolz', 'foo': 'kitty'}
댓글 입력