I have two lists of dictionaries (returned as Django querysets). Each dictionary has an ID value. I'd like to merge the two into a single list of dictionaries, based on the ID value.
For example:
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}]
and I want a function to yield:
list_c = [{'user__name': u'Joe', 'user__id': 1, 'hours_worked': 40},
{'user__name': u'Bob', 'user__id': 3, 'hours_worked': 25}]
Additional points to note:
- The IDs in the lists may not be in the same order (as with the example above).
- The lists will probably have the same number of elements, but I want to account for the option if they're not but keeping all the values from list_a (essentially
list_a OUTER JOIN list_b USING user__id
).
- I've tried doing this in SQL but it's not possible since some of the values are aggregates based on some exclusions.
- It's safe to assume there will only be at most one dictionary with the same
user__id
in each list due to the database queries used.
Many thanks for your time.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…