Как записать список в файл в правильном порядке?
С помощью pymysql делаю запрос к базе данных
sql = "SELECT {0} from {1}".format(data,table);
cursor.execute(sql)
items = cursor.fetchall()
В items вот такие данные. Как пройтись по ним понятно, а как записать в csv - нет.
with open(filename, 'w', newline='\n',encoding='utf8', errors='replace') as myfile:
wr = csv.writer(myfile, delimiter=';' )
for key in items:
lst = []
for key, value in key.items():
lst.append(value)
#lst ['000001', 'Игровой диск PEGI 16+', '000001-000021-000025', Decimal('200.00'), Decimal('500.00'), 0]
wr.writerow(lst)
Writerow у меня локально заносит как есть, а на сервере порядок абсолютно другой. Запросы идентичные, входные данные тоже. Не пойму в чем проблема
Ответы (1 шт):
sql = "SELECT {0} from {1}".format(data,table);
У вас не выбран никакой порядок получения данных, если на сервере данные положены в базу в другом порядке, то и выборка будет в другом порядке, хотя запросы и одинаковые. Надо указать ключ сортировки данных при запросе. Например:
sql = "SELECT {0} from {1} order by art".format(data,table);
Но ещё лучше, наверное, считывать данные с помощью библиотеки Pandas (функция read_sql), потом вы сможете легко отсортировать данные, отфильтровать, добавить нужные поля и легко записать в файл в нужном вам порядке.
