Python在 SQLite 数据库和其他数据格式之间导入和导出数据

2023-04-04 00:00:00 导入 导出 数据格式

Python 中可以使用标准库中的 sqlite3 模块来操作 SQLite 数据库,同时也可以使用 pandas 模块来处理 CSV 文件和 JSON 文件。

以下是将 SQLite 数据库导出为 CSV 文件的 Python 代码演示:

import sqlite3
import csv

# 连接 SQLite 数据库
conn = sqlite3.connect('mydatabase.db')
cursor = conn.cursor()

# 查询数据
cursor.execute('SELECT * FROM mytable')

# 将查询结果保存为 CSV 文件
with open('mytable.csv', 'w', newline='') as csvfile:
    writer = csv.writer(csvfile)
    writer.writerow([i[0] for i in cursor.description])  # 写入列名
    writer.writerows(cursor.fetchall())

# 关闭数据库连接
cursor.close()
conn.close()

以上代码首先连接到 SQLite 数据库,然后执行 SELECT 查询语句获取数据,并将数据保存为 CSV 文件。其中,使用 csv.writer 对象来将数据写入 CSV 文件中。

以下是将 CSV 文件导入到 SQLite 数据库中的 Python 代码演示:

import sqlite3
import csv

# 连接 SQLite 数据库
conn = sqlite3.connect('mydatabase.db')
cursor = conn.cursor()

# 创建表
cursor.execute('CREATE TABLE IF NOT EXISTS mytable (id INTEGER PRIMARY KEY, name TEXT, email TEXT)')

# 从 CSV 文件中读取数据并插入到表中
with open('mytable.csv', 'r') as csvfile:
    reader = csv.reader(csvfile)
    next(reader)  # 跳过第一行(列名)
    for row in reader:
        cursor.execute('INSERT INTO mytable (id, name, email) VALUES (?, ?, ?)', row)

# 提交事务并关闭数据库连接
conn.commit()
cursor.close()
conn.close()

以上代码首先连接到 SQLite 数据库,然后创建表(如果表不存在)。接着,使用 csv.reader 对象从 CSV 文件中逐行读取数据,并将数据插入到表中。其中,使用占位符来防止 SQL 注入攻击。最后,提交事务并关闭数据库连接。

相关文章