문자열을 dict로 바꿀 수 있나요?


s = "{'muffin' : 'lolz', 'foo' : 'kitty'}" -> {'muffin' : 'lolz', 'foo' : 'kitty'}

이런 식으로 스트링을 dict로 바꾸고 싶습니다.

동료 개발자가 모든 함수에서 string을 return 하게 만들어놨는데 문자열을 dict타입으로 바꿀 때 eval()을 쓰지 않고 어떻게 할 수 있나요?

  • 2016년 01월 19일에 작성됨

조회수 224


1 답변


좋아요
0
싫어요
채택취소하기

파이썬 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'}

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close