Я уже некоторое время использую PyMySQL и создаю свою собственную оболочку, к которой я привык писать короткие запросы. Тем не менее я создавал файлы CSV с помощью OrderedDict, потому что мне нужно поддерживать порядок одинаково, но я понимаю, что если я буду использовать PyMySQL для запроса базы данных, я не получу порядок, который возвращает база данных. Это немного раздражает для выборочных проверок CSV-файлов, если я хочу просто сбрасывать материал, а не писать команды.PyMySQL и OrderedDict
Мой вопрос: как я могу использовать PyMySQL с OrderedDict? В настоящее время мой код выглядит следующим образом:
import pymysql
conn = pymysql.connect(host='localhost', user='root', passwd='', db='test')
cursor = conn.cursor(pymysql.cursors.DictCursor)
Поэтому, когда я запрашиваю, я буду получать словарь обратно:
cursor.execute("""SELECT * FROM test""")
for row in cursor:
pp(row) # gives me dictionary
То, что я хочу, что когда я качусь через курсор, я на самом деле извлечения OrderedDict столбцов в порядке их поступления из базы данных.
Что-то вроде:
cursor = conn.cursor(pymysql.cursors.OrderedDict)
Добавить еще один коло mn, который содержит строку источника и порядок при запросе? – Busturdust
@Busturdust - я мог бы написать в своей обертке функцию say «query_ordered» или что-то, что имеет поля выбора в списке, а затем может создать генератор для получения упорядоченного словаря вместо словаря, но если я могу просто получить решение не написав это, и это тоже хорошо сыграло бы с моей оберткой, я бы предпочел это. – DataHerder