Улучшение памяти времени выполнения функции сериализации данных

#python #amazon-web-services #amazon-rds

#python #amazon-веб-сервисы #amazon-rds

Вопрос:

Приведенный ниже код используется для сериализации данных, поступающих из базы данных (AWS rds) и архивирования их по имени столбца, поэтому он проходит в основном через каждую строку и столбец.

Проблема, с которой я сталкиваюсь, заключается в том, что переменные хранятся 2 раза, поэтому, если я получаю данные размером 500 МБ, они преобразуют эти данные в 1 ГБ, а это невозможно.

Я пытаюсь минимизировать память времени выполнения функции, насколько это возможно, есть ли какой-либо возможный способ получить данные из RDS в паре значений ключа dict? Или мы можем сделать столбец сериализации мудрым?

 RDS response: {
    'result':[
     (datetime.datetime(2020, 1, 2, 0, 0), Decimal('133.340000'),Decimal('-1098.683000'),556,6667,90,'a','b','c','d','e','f'), 
     (datetime.datetime(2020, 1, 2, 0, 0), Decimal('133.340000'),Decimal('-1098.683000'),556,6667,90,'a','b','c','d','e','f'), 
     (datetime.datetime(2020, 1, 2, 0, 0), Decimal('133.340000'),Decimal('-1098.683000'),556,6667,90,'a','b','c','d','e','f'), 
     (datetime.datetime(2020, 1, 2, 0, 0), Decimal('133.340000'),Decimal('-1098.683000'),556,6667,90,'a','b','c','d','e','f'), 
     (datetime.datetime(2020, 1, 2, 0, 0), Decimal('133.340000'),Decimal('-1098.683000'),556,6667,90,'a','b','c','d','e','f'), 
     (datetime.datetime(2020, 1, 2, 0, 0), Decimal('133.340000'),Decimal('-1098.683000'),556,6667,90,'a','b','c','d','e','f'),
]}

@staticmethod
def map_result_set(rds_response, column_metadata):
    """
    Return a list of row objects with parameter-value pairs extracted from RDS response.
    """
    column_names_list = [column[0] for column in column_metadata]
    result_set = []
    for row in rds_response:
        # Create row objects by mapping column names to row values
        result_set.append(dict(zip(column_names_list, row)))
    return result_set