JSONオブジェクトからクラスインスタンスを作る

Python

コード

def from_json(src, cls):
    """
    JSONオブジェクトからインスタンスを作る

    Parameters
    ----------
    src : dict
        データの入ったJSONオブジェクト
    cls : class
        生成するインスタンスのクラス

    Returns
    -------
    dest : cls
        cls のインスタンス
    """

    dest = cls()

    # 必須属性を設定する
    lacks = []
    for key in cls.required:
        if key in src:
            setattr(dest, key, src[key])
        else:
            lacks.append(key)
    if len(lacks) > 0:
        msg = '{} は必須属性です'.format(','.join(lacks))
        raise Exception(msg)

    # 任意属性を設定する
    for key in cls.not_required:
        if key in src:
            setattr(dest, key,  src[key])

    return dest

コメント

タイトルとURLをコピーしました