Доступ к таблице в CSV с колонками - PullRequest
0 голосов
/ 28 июня 2018

Я хочу преобразовать таблицу MS Access в CSV.

Таблица доступа MS:

enter image description here

Python 2.7:

conn_string = r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=' + file1 + ';'
conn = pyodbc.connect(conn_string)
cursor = conn.cursor()

cursor.execute('SELECT * FROM EMP')

with open(csvfile, 'wb') as f:
    writer = csv.writer(f)
    writer.writerows([i[0] for i in cursor.description])
    writer.writerows(cursor)

cursor.close()
conn.close()

Но получаю неожиданный результат:

enter image description here

Ответы [ 2 ]

0 голосов
/ 28 июня 2018

Использование Pandas для чтения SQL и записи в CSV

import pyodbc
import pandas as pd

открытое соединение

conn_string = r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=' + file1 + ';'
conn = pyodbc.connect(conn_string)

Считать результат запроса SQl в кадр данных Pandas

query = "SELECT * FROM EMP"
dataf = pd.read_sql(query, conn)
conn .close()

Сохранить в CSV

dataf.to_csv('./file_path')
0 голосов
/ 28 июня 2018

Не записывайте значения столбцов в виде строк, это то, что расширяет их символы в отдельные ячейки. Для написания заголовка используйте:

writer.writerow([i[0] for i in cursor.description])

Затем используйте writer.writerows() для записи фактических данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...