Python で学ぶ価値のあるサードパーティの JSON ライブラリ

PHPz
リリース: 2023-04-11 20:49:07
転載
2131 人が閲覧しました

Python を日常的に使用する際、特に Web 開発では、データを保存するために json 形式を使用することがよくあります。ただし、Python のネイティブ json ライブラリはパフォーマンスが低く機能が少ないため、シンプルで軽量な json データの保存と変換のニーズにしか対応できません。

Python で学ぶ価値のあるサードパーティの JSON ライブラリ

この記事で紹介するサードパーティの json ライブラリ orjson は、さまざまな公開ベンチマーク パフォーマンス テストで数倍から数十倍のパフォーマンス上の利点があります。 json、ujson、rapidjson、simplejson などの他の Python ライブラリを圧縮し、多くの追加関数を備えています。共通のメソッドを見てみましょう~

orjson の共通メソッド

orjson はすべてをサポートしています3.7 ~ 3.10 64 ビット バージョンの Python の場合、この記事で説明されている orjson バージョンは 3.7.0 です。pip install -U orjson を直接使用してインストールを完了できます。 orjson の一般的なメソッドを示しましょう:

1. シリアル化

ネイティブ JSON ライブラリと同様に、orjson.dumps() を使用して Python オブジェクトを JSON データにシリアル化できます。違いは、orjson シリアル化の結果が str 型ではなく bytes 型であることです。次の例では、1,000 万個の単純な辞書要素を含むリストをシリアル化します。orjson ライブラリと json ライブラリの違い 時間のかかる比較は次のとおりです:

Python で学ぶ価値のあるサードパーティの JSON ライブラリ

2. 逆シリアル化

JSON データを Python オブジェクトに変換するプロセスは逆シリアル化と呼ばれ、orjson .loads() が動作し、バイトやバイトなどの一般的な型を受け入れます。 str. 前の例に基づいて、逆シリアル化の例を追加します:

Python で学ぶ価値のあるサードパーティの JSON ライブラリ

3. 豊富なオプションオプション

orjson のシリアル化操作では、多くの追加関数を使用できます。

(1) OPT_INDENT_2

option= orjson.OPT_INDENT_2 を設定することで、シリアル化された JSON に 2 スペースのインデント美化効果を追加できます。パラメータのインデントの不足を補う結果:

Python で学ぶ価値のあるサードパーティの JSON ライブラリ

(2) OPT_OMIT_MICROSECONDS

orjson.dumps() は標準の日付と時刻オブジェクトを直接変換できます。 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 の重要な機能は、次のことができることです。 option=orjson.OPT_SERIALIZE_NUMPY:

Python で学ぶ価値のあるサードパーティの JSON ライブラリ

(5) OPT_SERIALIZE_UUID

In を使用するだけで、numpy のデータ構造オブジェクトを含む複雑なオブジェクトを互換性のある JSON の配列に変換します。 numpy オブジェクトの自動シリアル化に加えて、orjson は 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 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:51cto.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート