>  기사  >  백엔드 개발  >  Python에서 학습할 가치가 있는 타사 JSON 라이브러리

Python에서 학습할 가치가 있는 타사 JSON 라이브러리

PHPz
PHPz앞으로
2023-04-11 20:49:072132검색

Python을 일상적으로 사용할 때 특히 웹 개발에서 일부 데이터를 저장하기 위해 json 형식을 사용하는 경우가 많습니다. 그러나 Python의 기본 json 라이브러리는 성능이 낮고 기능이 거의 없으며 간단하고 가벼운 json 데이터 저장 및 변환 요구에만 대처할 수 있습니다.

Python에서 학습할 가치가 있는 타사 JSON 라이브러리

이 글에서 소개하고 싶은 타사 json 라이브러리 orjson은 다양한 공개 벤치마크 성능 테스트에서 json, ujson, rapidjson, simplejson 등을 몇 배에서 수십 배의 성능 우위로 압도했습니다. . Python 라이브러리와 많은 추가 기능을 살펴보겠습니다.

orjson의 일반적인 방법

orjson은 3.7부터 3.10까지의 모든 버전의 orjson을 지원합니다. 3.7.0. 간단히 pip install -U orjson을 사용하여 설치를 완료하세요. orjson의 일반적인 방법을 살펴보겠습니다.

1. 직렬화

기본 json 라이브러리와 유사하게 orjson.dumps()를 사용하여 Python 객체를 JSON 데이터로 직렬화할 수 있습니다. 약간의 차이점은 orjson 직렬화의 결과입니다. 다음 예에서는 천만 개의 간단한 사전 요소가 포함된 목록을 직렬화합니다. orjson과 json 라이브러리 간의 시간 소모적 비교는 다음과 같습니다.

Python에서 학습할 가치가 있는 타사 JSON 라이브러리

2. JSON 데이터를 Python 객체로 변환하는 것을 deserialization이라고 합니다. 이는 bytes 및 str과 같은 일반적인 유형을 허용하는 orjson.loads()를 사용하여 수행됩니다. 이전 예제를 기반으로 deserialization을 추가하는 예를 들어보겠습니다. . 풍부한 옵션 옵션

orjson의 직렬화 작업에서 매개변수 옵션을 통해 많은 추가 기능을 구성할 수 있습니다. 일반적으로 사용되는 기능은 다음과 같습니다.

(1) OPT_INDENT_2 Python에서 학습할 가치가 있는 타사 JSON 라이브러리

옵션=orjson.OPT_INDENT_2를 구성하면 2를 추가할 수 있습니다. -space indent로 직렬화된 JSON 결과에 미화 효과를 주어 indent 매개변수 부족을 보완:

(2) OPT_OMIT_MICROSECONDS

orjson .dumps()는 datetime과 같은 표준 라이브러리의 날짜 및 시간 객체를 직접 변환할 수 있습니다. 및 Python의 시간을 해당 문자열로 변환합니다. 이는 기본 json 라이브러리가 수행할 수 없는 작업입니다. option=orjson.OPT_OMIT_MICROSECONDS를 구성하면 접미사의 밀리초 부분이 생략됩니다.

Python에서 학습할 가치가 있는 타사 JSON 라이브러리

(3 ) OPT_NON_STR_KEYS

직렬화해야 하는 객체에 숫자가 아닌 키가 있는 경우 orjson은 기본적으로 TypeError 오류를 발생시킵니다. 이 경우 option=orjson.OPT_NON_STR_KEYS는 이러한 키를 문자 유형으로 강제 변환하도록 구성해야 합니다.

Python에서 학습할 가치가 있는 타사 JSON 라이브러리

(4) OPT_SERIALIZE_NUMPY

orjson의 중요한 기능은 numpy의 데이터 구조 개체가 포함된 복잡한 개체를 JSON의 배열로 호환성 변환할 수 있다는 것입니다. option=orjson.OPT_SERIALIZE_NUMPY이면 충분합니다.

Python에서 학습할 가치가 있는 타사 JSON 라이브러리

( 5) OPT_SERIALIZE_UUID

orjson은 numpy 객체를 자동으로 직렬화하는 것 외에도 UUID 객체 변환도 지원합니다. orjson 3.0 이전 버전에서는 option=orjson .OPT_SERIALIZE_UUID와 협력해야 하지만 이 문서에서 설명하는 3.X 버전에서는 필요합니다. 추가 구성 매개변수 없음:

Python에서 학습할 가치가 있는 타사 JSON 라이브러리

(6) OPT_SORT_KEYS

매개변수 option=orjson.OPT_SORT_KEYS를 일치시켜 직렬화된 결과를 키별로 자동 정렬할 수 있습니다.

Python에서 학습할 가치가 있는 타사 JSON 라이브러리

(7) 여러 옵션을 결합

하는 경우 직렬화 작업에 여러 옵션 기능이 포함되어야 하는 경우 | 연산자를 사용하여 여러 옵션 매개변수를 결합할 수 있습니다.

Python에서 학습할 가치가 있는 타사 JSON 라이브러리

4. 데이터 클래스 및 날짜/시간에 대한 사용자 정의 처리 전략 추가

직렬화해야 하는 객체에 데이터 클래스 사용자 정의 데이터 구조가 포함된 경우 orjson.OPT_PASSTHROUGH_DATACLASS와 협력한 다음 기본 매개변수 함수를 전달하여 사용자 정의 처리를 전달할 수 있습니다. 예를 들어, 아래의 간단한 예에서는 이 기능을 사용하여 원본 데이터의 민감도를 낮출 수 있습니다.

Python에서 학습할 가치가 있는 타사 JSON 라이브러리

마찬가지로 날짜/시간 유형 데이터의 경우 OPT_PASSTHROUGH_DATETIME 및 사용자 정의 기본 함수와 협력할 수도 있습니다. 날짜 사용자 정의 형식 변환을 구현하려면:

Python에서 학습할 가치가 있는 타사 JSON 라이브러리

orjson 더 많은 기능을 보려면 공식 창고 https://github.com/ijl/orjson으로 이동하여 자세히 알아보세요.

위 내용은 Python에서 학습할 가치가 있는 타사 JSON 라이브러리의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 51cto.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제