📜  如何使用Python在 SQLite 数据库中导入 CSV 文件?(1)

📅  最后修改于: 2023-12-03 15:24:00.724000             🧑  作者: Mango

使用Python在 SQLite 数据库中导入 CSV 文件

如果你需要在 SQLite 数据库中导入 CSV 文件,你可以使用 Python 的标准库 csv 和 SQLite3 驱动程序。

步骤
  1. 创建 SQLite 数据库和表格

首先,使用 SQLite3 驱动程序的 connect() 方法创建一个 SQLite 数据库连接,然后创建一个表格来存储 CSV 文件中的数据。以下是一个示例代码:

import sqlite3

conn = sqlite3.connect('mydatabase.db')
cursor = conn.cursor()

# 创建表格
cursor.execute('''CREATE TABLE mytable
                 (id INTEGER PRIMARY KEY,
                 name TEXT,
                 age INTEGER,
                 gender TEXT)''')

这将创建一个名为 mydatabase.db 的 SQLite 数据库并在其中创建一个名为 mytable 的表格。

  1. 读取 CSV 文件

要从 CSV 文件中导入数据,你需要使用 Python 的标准库 csv 中的 reader() 方法读取 CSV 文件。以下是一个示例代码:

import csv

with open('mydata.csv', newline='') as csvfile:
    reader = csv.reader(csvfile)
    next(reader)  # 跳过标题行
    for row in reader:
        print(row)

这将打开名为 mydata.csv 的 CSV 文件,并将其读取为一个迭代器对象 reader。使用 next() 方法跳过标题行,然后打印 CSV 文件中的每一行。

  1. 将数据导入 SQLite 数据库

将数据导入 SQLite 数据库的最后一步是使用 SQLite3 驱动程序的 execute() 方法执行 INSERT INTO 语句。以下是一个示例代码:

import sqlite3
import csv

conn = sqlite3.connect('mydatabase.db')
cursor = conn.cursor()

# 创建表格
cursor.execute('''CREATE TABLE mytable
                 (id INTEGER PRIMARY KEY,
                 name TEXT,
                 age INTEGER,
                 gender TEXT)''')

# 导入 CSV 文件中的数据
with open('mydata.csv', newline='') as csvfile:
    reader = csv.reader(csvfile)
    next(reader)  # 跳过标题行
    for row in reader:
        cursor.execute("INSERT INTO mytable (name, age, gender) VALUES (?, ?, ?);", (row[0], row[1], row[2]))

# 提交更改
conn.commit()

这将读取名为 mydata.csv 的 CSV 文件,并将每行数据插入 mytable 表格中。最后,使用 commit() 方法提交更改。

总结

使用 Python 在 SQLite 数据库中导入 CSV 文件需要执行以下步骤:

  1. 创建 SQLite 数据库和表格。
  2. 读取 CSV 文件。
  3. 将数据导入 SQLite 数据库。

这些步骤可以通过 Python 的标准库 csv 和 SQLite3 驱动程序完成。