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)