ホームページ >バックエンド開発 >Python チュートリアル >精度を落とさずに Python で 10 進オブジェクトを JSON にシリアル化するにはどうすればよいですか?

精度を落とさずに Python で 10 進オブジェクトを JSON にシリアル化するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-27 13:21:13433ブラウズ

How Can I Serialize Decimal Objects to JSON in Python Without Losing Precision?

Python で Decimal オブジェクトを JSON にシリアル化する

Decimal オブジェクトを JSON 文字列にエンコードしようとすると、JSONDecoder が拒否するという問題が発生する可能性があります10 進数のオブジェクト。さらに、事前に Decimal オブジェクトを float に変換すると、精度が失われる可能性があります。

Simplejson を使用したソリューション

Simplejson バージョン 2.1 以降では、Decimal 型のネイティブ サポートが提供されます。デフォルトでは、Decimal オブジェクトは use_decimal パラメータが True に設定された文字列としてシリアル化されます。この機能を利用するには:

import simplejson as json

json_string = json.dumps(Decimal('3.9'))
# Output: '3.9'

標準ライブラリへの組み込み予定

この機能は将来 Python 標準ライブラリに組み込まれる予定であり、より多くの機能を提供します。 Decimal オブジェクトを JSON にシリアル化するための堅牢なソリューション。

以上が精度を落とさずに Python で 10 進オブジェクトを JSON にシリアル化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。