>백엔드 개발 >파이썬 튜토리얼 >Python에서 사전의 문자열 표현을 사전으로 안전하게 변환하는 방법은 무엇입니까?

Python에서 사전의 문자열 표현을 사전으로 안전하게 변환하는 방법은 무엇입니까?

DDD
DDD원래의
2024-12-26 10:22:09290검색

How to Safely Convert String Representations of Dictionaries to Dictionaries in Python?

사전의 문자열 표현을 사전으로 변환

사전의 문자열 표현을 사전으로 변환하는 작업을 생각해 보세요. 예를 들면 다음과 같습니다.

이러한 목적으로 평가 기능을 사용하고 싶은 유혹을 느낄 수도 있지만 잠재적인 보안 위험 때문에 평가를 피하는 것이 좋습니다.

대신 다음을 사용하는 것이 좋습니다. Python의 표준 라이브러리에서 제공되는 ast.literal_eval 함수:

ast.literal_eval 함수는 문자열을 안전하게 평가합니다. Python 표현식이 포함되어 있습니다. 문자열, 숫자, 튜플, 목록, 사전, 부울 및 없음과 같은 리터럴 구조만 허용하므로 표현식을 안전하게 평가할 수 있습니다.

이 방법은 실행을 방지하므로 eval을 사용하는 것보다 안전합니다. 잠재적으로 시스템을 손상시킬 수 있는 임의 코드입니다. 예:

첫 번째 예에서 eval은 문자열을 Python 코드로 실행합니다. 이로 인해 mongo가 유효한 디렉터리가 아니기 때문에 오류가 발생합니다. 두 번째 예에서 ast.literal_eval은 문자열을 리터럴 표현식으로 안전하게 평가하고 문자열 형식이 잘못되었음을 나타내는 오류를 발생시킵니다.

위 내용은 Python에서 사전의 문자열 표현을 사전으로 안전하게 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.