Python を日常的に使用する際、特に Web 開発では、データを保存するために json 形式を使用することがよくあります。ただし、Python のネイティブ json ライブラリはパフォーマンスが低く機能が少ないため、シンプルで軽量な json データの保存と変換のニーズにしか対応できません。
この記事で紹介するサードパーティの json ライブラリ orjson は、さまざまな公開ベンチマーク パフォーマンス テストで数倍から数十倍のパフォーマンス上の利点があります。 json、ujson、rapidjson、simplejson などの他の Python ライブラリを圧縮し、多くの追加関数を備えています。共通のメソッドを見てみましょう~
orjson はすべてをサポートしています3.7 ~ 3.10 64 ビット バージョンの Python の場合、この記事で説明されている orjson バージョンは 3.7.0 です。pip install -U orjson を直接使用してインストールを完了できます。 orjson の一般的なメソッドを示しましょう:
ネイティブ JSON ライブラリと同様に、orjson.dumps() を使用して Python オブジェクトを JSON データにシリアル化できます。違いは、orjson シリアル化の結果が str 型ではなく bytes 型であることです。次の例では、1,000 万個の単純な辞書要素を含むリストをシリアル化します。orjson ライブラリと json ライブラリの違い 時間のかかる比較は次のとおりです:
JSON データを Python オブジェクトに変換するプロセスは逆シリアル化と呼ばれ、orjson .loads() が動作し、バイトやバイトなどの一般的な型を受け入れます。 str. 前の例に基づいて、逆シリアル化の例を追加します:
orjson のシリアル化操作では、多くの追加関数を使用できます。
(1) OPT_INDENT_2
option= orjson.OPT_INDENT_2 を設定することで、シリアル化された JSON に 2 スペースのインデント美化効果を追加できます。パラメータのインデントの不足を補う結果:
(2) OPT_OMIT_MICROSECONDS
orjson.dumps() は標準の日付と時刻オブジェクトを直接変換できます。 Python の日時や時刻などのライブラリを対応する文字列に変換します。これは、ネイティブ JSON ライブラリでは実行できないことです。option= orjson.OPT_OMIT_MICROSECONDS を設定することで、変換結果のサフィックスのミリ秒部分を省略できます:
(3) OPT_NON_STR_KEYS
シリアル化するオブジェクトが数値型以外の場合 キーを使用する場合、orjson はデフォルトで TypeError をスローします。これらのキーを文字型に強制的に変換するには、option=orjson.OPT_NON_STR_KEYS を設定します。
##(4) OPT_SERIALIZE_NUMPYorjson の重要な機能は、次のことができることです。 option=orjson.OPT_SERIALIZE_NUMPY: (5) OPT_SERIALIZE_UUIDIn を使用するだけで、numpy のデータ構造オブジェクトを含む複雑なオブジェクトを互換性のある JSON の配列に変換します。 numpy オブジェクトの自動シリアル化に加えて、orjson は UUID オブジェクトの変換もサポートしています。orjson 3.0 より前のバージョンでは、option=orjson が必要です。.OPT_SERIALIZE_UUID、そしてこの記事で説明されている 3.X バージョンでは、追加の構成パラメータは必要ありません: (6) OPT_SORT_KEYSパラメータ option=orjson.OPT_SORT_KEYS と一致させることで、シリアル化された結果をキーによって自動的に並べ替えることができます:##(7) シリアル化操作に関与する必要がある場合の複数のオプションの組み合わせ
## 複数のオプション関数を使用する場合、 | 演算子を使用して複数のオプション パラメーターを組み合わせることができます。シリアル化する必要があるオブジェクトにデータクラスのカスタム データ構造が含まれる場合は、orjson と連携できます。OPT_PASSTHROUGH_DATACLASS、および次に、デフォルト パラメーターをカスタム処理関数に渡して、より自由なデータ変換ロジックを実現します。たとえば、次の簡単な例では、この機能を使用して元のデータを感度を下げることができます:
同様に、日時型データの場合、OPT_PASSTHROUGH_DATETIME およびカスタム デフォルト関数と連携して、日付のカスタム形式変換を実装することもできます。
orjson のその他の機能については、こちらをご覧ください。詳細については、公式ウェアハウス https://github.com/ijl/orjson にアクセスしてください。
以上がPython で学ぶ価値のあるサードパーティの JSON ライブラリの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。