如何用Python从数据库创建CSV文件?

2024-05-15 10:56:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个名为“clients”的Sqlite 3和/或MySQL表。。

使用Python2.6,如何创建一个名为Clients100914.csv的csv文件,其中包含头文件? excel方言。。。

Sql execute:select*只提供表数据,但我希望完整的表有标题。

如何创建记录集以获取表标题。表头应该直接来自不是用python编写的sql。

w = csv.writer(open(Fn,'wb'),dialect='excel')
#w.writelines("header_row")
#Fetch into sqld
w.writerows(sqld)

这段代码使我的文件处于打开状态,没有头。也不知道如何使用文件作为日志。


Tags: 文件csv数据标题executesqlitesql头文件
3条回答

您可以轻松地手动创建它,用选定的分隔符编写文件。您也可以使用csv module

如果它来自数据库,您也可以使用sqlite客户机的查询:

sqlite <db params> < queryfile.sql > output.csv

它将创建一个带有制表符分隔符的csv文件。

import csv
import sqlite3

from glob import glob; from os.path import expanduser
conn = sqlite3.connect( # open "places.sqlite" from one of the Firefox profiles
    glob(expanduser('~/.mozilla/firefox/*/places.sqlite'))[0]
)
cursor = conn.cursor()
cursor.execute("select * from moz_places;")
#with open("out.csv", "w", newline='') as csv_file:  # Python 3 version    
with open("out.csv", "wb") as csv_file:              # Python 2 version
    csv_writer = csv.writer(csv_file)
    csv_writer.writerow([i[0] for i in cursor.description]) # write headers
    csv_writer.writerows(cursor)

PEP 249 (DB API 2.0)有关于cursor.description的更多信息。

使用csv module非常直接,可以完成此任务。

import csv
writer = csv.writer(open("out.csv", 'w'))
writer.writerow(['name', 'address', 'phone', 'etc'])
writer.writerow(['bob', '2 main st', '703', 'yada'])
writer.writerow(['mary', '3 main st', '704', 'yada'])

创建您所期望的格式。

相关问题 更多 >