Ускорение SQL до словаря в python - PullRequest
0 голосов
/ 06 февраля 2020

Как я могу ускорить создание словарной формы 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

Результирующий словарь не обязательно должен точно соответствовать тому, который я разработал, я могу изменить отображаемую функцию, чтобы она соответствовала словарю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...