#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