14

クエリの結果を次のような辞書のリストに変換したい:

result_dict = [{'category': 'failure', 'week': '1209', 'stat': 'tdc_ok', 'severityDue': '2_critic'}, {'category': 'failure', 'week': '1210', 'stat': 'tdc_nok', 'severityDue': '2_critic'}]

しかし、代わりに私はそれを口述として取得するので、キーが繰り返されます:

result_dict = {'category': 'failure', 'week': '1209', 'stat': 'tdc_ok', 'severityDue': '2_critic', 'category': 'failure', 'week': '1210', 'stat': 'tdc_nok', 'severityDue': '2_critic'}

これを行うことでこの結果が得られます:

for u in my_query.all():
     result_dict = u.__dict__

sqlAlchemy クエリの結果を dict のリストに変換するにはどうすればよいですか (各行は dict になります)。

助けてください

4

4 に答える 4

16

試す

result_dict = [u.__dict__ for u in my_query.all()]

ループの前のタイプは何ですか? その振る舞いはかなり奇妙です。result_dictfor

于 2013-07-18T08:46:08.560 に答える
5

.all()はありません

あなたが試すことができます:

result_dict = [u.__dict__ for u in my_query.fetchall()]
于 2015-05-11T13:48:12.657 に答える
5

これで動作します

result_dict = [u._asdict() for u in my_query.all()]

その理由は、u が実際にはタプルではなく、KeyedTuple であるためです。

このスレッドの正解も参考になります

于 2017-08-30T10:09:25.743 に答える