Как прочитать все данные из cursor.execute () в Python? - PullRequest
0 голосов
/ 30 мая 2018

Я использую PyMysql для подключения к моей БД MySQL.

cursor.execute(query)
data = cursor.fetchall()
for (id,clientid,timestamp) in cursor:
    print id,clientid,timestamp

Я хочу отсортировать данные по отметке времени, например:

 sortedList = sorted(data, key=lambda x: x.timestamp, reverse=False)

, но курсор возвращает строки.Как я могу вернуть все данные, чтобы я мог отсортировать их по любому параметру?

ps: Здесь данные содержат несколько строк, например;1, '1170', 'AS0001', 1, '1', datetime.datetime(2018, 3, 15, 10, 56), Decimal('15185.7562'), Decimal('0.0000'), Decimal('19814.3181')

1 Ответ

0 голосов
/ 30 мая 2018

С простым старым курсором вы можете просто сделать cursor.fetchall (), как показано ниже:

with connection.cursor() as cursor:
    cursor.execute("select a, b, c from bar")
    print(cursor.fetchall())

Какие выходные данные

[(1,2,3), (4,5,6), ...]

Однако, если вы хотите получить результатыв формате словаря убедитесь, что соединены с:

connection = pymysql.connect(db='foo', cursorclass=pymysql.cursors.DictCursor)

В этом случае результаты будут использоваться в вашей лямбде, то есть:

[{'a':1, 'b':2, 'c': 3}, ...]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...