ホームページ > バックエンド開発 > Python チュートリアル > sqlalchemy オブジェクトを dict に変換する例

sqlalchemy オブジェクトを dict に変換する例

WBOY
リリース: 2016-06-16 08:44:27
オリジナル
1685 人が閲覧しました

" ""

sqlalchemy オブジェクトを dict に変換します

:param filtrate: フィルターされたフィールド :type filtrate: リストまたはタプル :param rename: 名前を変更する必要がある場合、名前の変更はフィルタリング後に処理され、キーは元のものになります オブジェクトの属性名、値は変更する必要がある名前です :type rename: dict :rtype: dict """

if isinstance(obj.__class__, DeclarativeMeta):
# SQLAlchemy クラス
# このクラスの関連タイプ、つまり直接および間接の親クラス
cla = obj.__class__.__mro__
# 不要な親クラスをフィルターします
cla = filter(lambda c: hasattr(c, '__table__'), filter(lambda c: isinstance(c, DeclarativeMeta), cla))
columns = []
map(lambda c: columns.extend(c.__table__.columns), cla[::-1])
# 列 = obj ): フィールド = dict(map(lambda c: (c.name) 、getattr(obj, c.name))、filter(lambda c: not c.name in filtrate, columns)))

else:
Fields = Dict (MAP (Lambda C: (C.Name, Getattr) (Obj, C.Name)), Columns)
# Fields = DICT ([(C.Name, Getattr (OBJ, C. name)) for c in obj.__table__.columns])
If rename and isinstance(rename, dict):
#同じキーと値を持つ項目を最初に削除します
_rename = dict(filter(lambda ( k, v): str(k) != str(v), rename.iteritems ()))
キーが元のキーにすでに存在する場合、元のキーの値は新しいキーの値で上書きされます
# map(lambda (k, v ):fields.setdefault(v,fields.pop(k,None)),_rename.iteritems())
map(lambda(k,v):fields.update({v:fields.pop(k,None) )}), _rename.iteritems())
#
return フィールド
else:
return {}


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート