Я получаю список словарей в формате из API,:Создание уникальных словарей для двух ключей в списке словарей
например.
xlist =[
{ "id":1, "day":2, name:"abc", ... },
{ "id":1, "day":3, name:"abc", ... },
{ "id":1, "day":2, name:"xyz", ... },
{ "id":1, "day":3, name:"xyz", ... },...
]
Итак, чтобы хранить/оптимизировать запросы в БД, я должен их преобразовать в этом формате.
Что является эффективным или другим способом создания следующей структуры?
unique_xlist =[ { "id":1, "day":2, name:["abc", "xyz"], ... }, { "id":1, "day":3, name:["abc", "xyz"], ... }, ]
Что я делаю:
names = list(set([ v['name'] for v in xlist])) #-- GET UNIQUE NAMES
templist = [{k:(names if k == 'name' else v) \
for k, v in obj.items()} for obj in xlist] #-- Append Unique names
unique_xlist= {v['day']:v for v in templist}.values() #- find unique dicts
Я не думаю, что это очень эффективно, я с помощью 3 петли просто найти уникальную dicts от дня.
Вы вы только должны собрать разные 'имени была? – Jasper
@ Jasper - Да, также, но может быть несколько ключей, таких как имя, предположим, электронная почта. – trex