Stack Overflow на русском Asked by Radzhab on November 5, 2021
С помощью 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
у меня локально заносит как есть, а на сервере порядок абсолютно другой. Запросы идентичные, входные данные тоже. Не пойму в чем проблема
sql = "SELECT {0} from {1}".format(data,table);
У вас не выбран никакой порядок получения данных, если на сервере данные положены в базу в другом порядке, то и выборка будет в другом порядке, хотя запросы и одинаковые. Надо указать ключ сортировки данных при запросе. Например:
sql = "SELECT {0} from {1} order by art".format(data,table);
Но ещё лучше, наверное, считывать данные с помощью библиотеки Pandas
(функция read_sql
), потом вы сможете легко отсортировать данные, отфильтровать, добавить нужные поля и легко записать в файл в нужном вам порядке.
Answered by CrazyElf on November 5, 2021
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP