데이터를 저장하는 명령줄 API 방법

데이터를 저장하는 명령줄 API 방법

Unix 환경에서 가상 머신용 API를 개발 중입니다. 가상 머신에 대한 일부 정보를 테이블에 저장해야 합니다.

현재 저는 가상 머신 개체의 Python 사전을 사용하고 있으며 이를 피클에 저장하고 있습니다.

명령줄 API에 데이터를 저장하는 다른 가장 좋은 방법이 무엇인지 알고 싶습니다. 어떤 제안이라도 도움이 될 것입니다.

답변1

다른 사람이 사용하는 애플리케이션의 경우 신뢰할 수 없는 소스에서 피클된 데이터를 로드하는 것을 저장하지 않으므로 피클을 사용해서는 안 됩니다(또는 데이터 쓰기와 읽기 사이에 디스크의 피클이 변경될 수 없다는 것을 100% 확신해야 합니다).

사용자가 데이터를 수정해야 하는 경우 다음을 사용해야 합니다.YAML. Python 구현은 다음을 통해 가능합니다.rummel.yaml(면책조항: 저는 YAML 1.2 파서/덤퍼의 작성자입니다.)

대안은JSON그리고 더 많은 XML 작업.

이 모든 작업에는 내부 유형과 저장 형식(사전/맵, 목록, 기본 유형(정수, 문자열, 부울))에서 지원하는 유형 간 변환이 필요합니다.

YAML은 또한 Python 데이터를 피클링하는 것과 동일한 보안 문제가 있는 사용자 정의 유형을 지원하지만 최소한 피클이 지원하지 않는 안전한 로딩을 허용합니다. YAML은 피클에서와 같이 명시적인 사용자 유형을 사용하여 소스 레이아웃을 변경(모듈 이름 바꾸기, 클래스 이동)한 후 데이터를 로드하는 데 문제가 적습니다.

관련 정보