辞書のリストが 2 つあります (Django クエリセットとして返されます)。各ディクショナリには ID 値があります。ID 値に基づいて、2 つを 1 つの辞書リストにマージしたいと思います。
例えば:
list_a = [{'user__name': u'Joe', 'user__id': 1},
{'user__name': u'Bob', 'user__id': 3}]
list_b = [{'hours_worked': 25, 'user__id': 3},
{'hours_worked': 40, 'user__id': 1}]
そして、私は関数が生成することを望みます:
list_c = [{'user__name': u'Joe', 'user__id': 1, 'hours_worked': 40},
{'user__name': u'Bob', 'user__id': 3, 'hours_worked': 25}]
その他の注意事項:
- リスト内の ID は、同じ順序ではない場合があります (上記の例のように)。
- リストにはおそらく同じ数の要素がありますが、そうでない場合はオプションを説明したいと思いますが、list_a からのすべての値を保持します (本質的に
list_a OUTER JOIN list_b USING user__id
)。 - SQL でこれを実行しようとしましたが、一部の値が一部の除外に基づく集計であるため、不可能です。
user__id
使用されるデータベース クエリにより、各リストに同じ辞書が多くても 1 つしか存在しないと想定しても問題ありません。
お時間をいただきありがとうございました。