Python中使用SQLite导入和导出CSV数据
SQLite是一种轻量级的关系型数据库,常用于移动设备应用程序和小型Web应用程序。在Python中,我们可以使用内置的sqlite3模块来与SQLite数据库进行交互。本文将介绍如何使用Python将数据导入和导出CSV文件。
导入CSV数据到SQLite数据库
首先,我们需要创建一个SQLite数据库并建立一个表来存储CSV文件中的数据。接下来,我们将读取CSV文件中的数据,并将其插入到SQLite表中。
import sqlite3
import csv
# 创建SQLite数据库
conn = sqlite3.connect('example.db')
cursor = conn.cursor()
# 创建表
cursor.execute('''
CREATE TABLE IF NOT EXISTS data (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT,
email TEXT
);
''')
# 读取CSV文件并插入数据
with open('data.csv', 'r') as file:
reader = csv.reader(file)
next(reader) # 跳过标题行
for row in reader:
cursor.execute('INSERT INTO data (name, email) VALUES (?, ?)', row)
# 提交更改并关闭连接
conn.commit()
conn.close()
在上面的示例中,我们首先使用sqlite3模块打开一个SQLite数据库连接,并创建一个名为data
的表。然后,我们打开一个CSV文件并逐行将数据插入到表中。最后,我们提交更改并关闭连接。
运行以上代码后,数据将成功导入到SQLite数据库中。
导出SQLite数据到CSV文件
类似地,我们也可以使用Python将SQLite数据库中的数据导出为CSV文件。以下示例展示了如何查询数据库中的数据,并将其写入到CSV文件中。
import sqlite3
import csv
# 连接到SQLite数据库
conn = sqlite3.connect('example.db')
cursor = conn.cursor()
# 查询数据
cursor.execute('SELECT * FROM data')
rows = cursor.fetchall()
# 写入CSV文件
with open('output.csv', 'w', newline='') as file:
writer = csv.writer(file)
writer.writerow(['id', 'name', 'email'])
writer.writerows(rows)
# 关闭连接
conn.close()
在上面的示例中,我们首先查询SQLite数据库中的所有数据,并将结果存储在rows
变量中。然后,我们打开一个CSV文件并将数据写入文件中。最后,我们关闭数据库连接。
运行以上代码后,数据将成功导出为CSV文件。
结论
在本文中,我们介绍了如何使用Python将数据导入和导出SQLite数据库和CSV文件。通过使用sqlite3模块和csv模块,我们可以方便地在Python中处理数据库和文件操作。