Как я могу ускорить создание словарной формы SQL запрос: После выполнения запроса django, который соединяет несколько таблиц, которые являются один ко многим, я получаю много повторяющихся данных, которые я хочу преобразовать в хороший json формат.
[
{'id':1, 'version':1, 'key3':'something different'},
{'id':1, 'version':1, 'key3':'something different'},
{'id':1, 'version':1, 'key3':'something different'},
{'id':2, 'version':1, 'key3':'something different'},
{'id':2, 'version':1, 'key3':'something different'},
{'id':3, 'version':1, 'key3':'something different'},
]
Я хочу построить его так, чтобы он выглядел так:
{
'1':{
'version':1,
'key':['something different', 'something different', 'something different']
},
'2':{
'version':1,
'key':['something different', 'something different']
},
'3':{
'version':1,
'key':['something different']
}
}
Функция, которая у меня сейчас есть, занимает около 1s
для около 2000
отформатированного записей, из примерно 8000
SQL записей. Моя функция похожа на
def func(data):
new_dict = {}
for d in data:
id = d['id']
if id not in new_dict:
new_dict[id]['version'] = d['version']
new_dict[id]['key'] = []
new_dict[id]['key'].append(d['key'])
return new_dict
Результирующий словарь не обязательно должен точно соответствовать тому, который я разработал, я могу изменить отображаемую функцию, чтобы она соответствовала словарю.