JsonCustomEncoder¶
- class astropy.utils.misc.JsonCustomEncoder(*, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, sort_keys=False, indent=None, separators=None, default=None)[ソース]¶
ベースクラス:
json.encoder.JSONEncoder
JSONデフォルトエンコーダでサポートされていないデータ·タイプをサポートします。
これには
Numpy配列またはNumpy配列
複数
集
バイト数.
astropy.UnitBase
astropy.Quantity
実例.
>>> import json >>> import numpy as np >>> from astropy.utils.misc import JsonCustomEncoder >>> json.dumps(np.arange(3), cls=JsonCustomEncoder) '[0, 1, 2]'
JSONEncodeの構造関数は,合理的なデフォルト値を持つ.
Skipkeyがfalseであれば,文字列ではない,int,FloatまたはNone鍵の符号化を試みるのはTypeErrorである.SkipkeyがTrueであれば,このような項目のみをスキップする.
_asciiがTRUEであることが保証された場合,出力が文字列オブジェクトであることが保証され,すべての入力非ASCII文字が変換される._asciiがFALSEであることが保証されている場合、出力は非ASCII文字を含むことができる。
Check_Circleがtrueである場合、無限再帰(これはOverflowErrorをもたらす)を防止するために、符号化中にリスト、辞書、およびカスタム符号化オブジェクトのループ参照がチェックされる。そうでなければ、このような検査は行われないだろう。
ALLOW_NANがTRUEである場合、NaN、Infinity、および-Infinityはこれに従って符号化される。この行為はJSON仕様には適合していないが,JavaScriptに基づくエンコーダやデコーダの多くと一致している.そうでなければ,このような浮動小数点数を符号化するのはValueErrorである.
SORT_KEYSがtrueであれば,辞書の出力はボタンをソートし,これは回帰テストに有用であり,JSONを日ごとに比較できることを保証する.
非負整数にインデントされた場合、JSON配列要素およびオブジェクトメンバは、このインデントレベルを用いて美化印刷を行う。インデントレベルが0であれば改行のみが挿入される.無は最もコンパクトな表示である.
指定された場合、デリミタは(Item_Separator、Key_Separator)タプルとなるべきである。デフォルト値は(‘,’,‘:’),もし 引き込む. はい。
None
(‘,’,‘:’)そうでなければ。最もコンパクトなJSON表示を得るためには、(‘、’、‘:’)を指定してスペースを削除する必要があります。指定すると,Defaultは直列化できないオブジェクトのために呼び出される関数である.オブジェクトのJSON符号化可能バージョンに戻るべきか、または開始すべきである
TypeError
それがそうです。方法要約
default
\(OBJ)この方法は、それが戻るようにサブクラスで実装される。
o
または呼び出しベースの実装(開始TypeError
)。方法文書
- default(obj)[ソース]¶
この方法は、それが戻るようにサブクラスで実装される。
o
または呼び出しベースの実装(開始TypeError
)。例えば、任意の反復器をサポートするために、デフォルト設定は、以下のように実装されてもよい。
def default(self, o): try: iterable = iter(o) except TypeError: pass else: return list(iterable) # Let the base class default method raise the TypeError return JSONEncoder.default(self, o)