반응형
목록의 표현을 실제 목록으로 변환
이 질문에 이미 답변이 있습니다.
- 목록의 언어 표현을 목록 16 개 답변으로 변환
목록과 똑같이 보이는 곳이 있습니다.
fruits = "['apple', 'orange', 'banana']"
목록으로 변환하는 방법은 무엇입니까?
>>> fruits = "['apple', 'orange', 'banana']"
>>> import ast
>>> fruits = ast.literal_eval(fruits)
>>> fruits
['apple', 'orange', 'banana']
>>> fruits[1]
'orange'
주석에서 지적했듯이 ast.literal_eval 은 안전 합니다. 문서에서 :
Python은 많은 노드에서 사용됩니다. 어디에서나 노드는 다음 Python 리터럴 구조로만 구성 될 수 있습니다 : 목록, 숫자, 튜플, 목록, dicts, 부울 및 없음.
이 값을 직접 구문 분석 할 필요없이 많은 수없는 소스의 Python 라이브러리 값을 사용하여 사용할 수 있습니다.
에 대한 간단한 호출 은 다음을 수행합니다.eval()
fruits = eval("['apple', 'orange', 'banana']")
fruits
> ['apple', 'orange', 'banana']
이 또는 기사 에서 설명한대로 다음과 같이 약간 더 안전하게 (의도하지 않은 부작용이나 악성 코드 삽입 위험없이 ) 동일한 작업을 수행 할 수 있습니다.
fruits = eval("['apple', 'orange', 'banana']", {'__builtins__':None}, {})
이 솔루션은 추가 모듈에 의존하지 않는 장점이 있습니다.
나는 이것이 ast.literal_eval의 목적이라고 생각합니다.
( http://docs.python.org/library/ast.html#ast.literal_eval )
반응형
'ProgramingTip' 카테고리의 다른 글
Emacs : 킬 링없이 텍스트를 삭제하는 방법? (0) | 2020.10.12 |
---|---|
Rails 3.1에서 새 자산 경로 추가 (0) | 2020.10.12 |
Razor보기에서 인코딩되지 않은 암호화 된 내보내기 (0) | 2020.10.12 |
PHP로 SFTP하는 방법? (0) | 2020.10.12 |
한 줄로 LHS에 여러 새 변수 할당 (0) | 2020.10.12 |