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

📅  最后修改于: 2023-12-03 14:52:04.351000             🧑  作者: Mango

如何使用Python将CSV文件导入SQLite数据库表?

在进行数据分析时,经常需要将存储在CSV文件中的数据导入到SQLite数据库表中进行分析和处理。Python提供了一种简单的方法来完成这个任务。

步骤

以下是将CSV文件导入SQLite数据库表的步骤:

1.安装SQLite3和Python SQLite3模块:要使用SQLite,首先需要安装SQLite3和Python SQLite3模块。

2.创建目标数据库表:使用SQLite shell或SQLite工具创建目标数据库表。

3.导入CSV文件:使用Python编写脚本来将CSV文件的数据导入SQLite数据库表。

安装SQLite3和Python SQLite3模块

安装SQLite3和Python SQLite3模块的方法因操作系统而异。以下是在Ubuntu和Windows上安装的方法:

Ubuntu

在Ubuntu上安装SQLite3:

sudo apt-get install sqlite3

在Ubuntu上安装Python SQLite3模块:

sudo apt-get install python3-sqlite
Windows

在Windows上安装SQLite3:

下载SQLite3二进制文件并将其设置为系统环境变量。

在Windows上安装Python SQLite3模块:

使用以下命令在命令提示符下安装Python SQLite3模块:

pip install pysqlite3
创建目标数据库表

在SQLite shell或SQLite工具中,使用以下命令创建目标数据库表:

CREATE TABLE students (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT NOT NULL,
    age INTEGER,
    gender TEXT
);
导入CSV文件

使用以下Python脚本将CSV文件中的数据导入SQLite数据库表:

import csv
import sqlite3

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

# 创建一个游标对象
cursor = conn.cursor()

# 创建一个表
cursor.execute('''
    CREATE TABLE students
    (id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT NOT NULL,
    age INTEGER,
    gender TEXT)
''')

# 打开CSV文件并将数据插入到表中
with open('students.csv', 'r') as file:
    reader = csv.reader(file)
    for row in reader:
        name, age, gender = row
        cursor.execute('''
            INSERT INTO students (name, age, gender)
            VALUES (?, ?, ?)
        ''', (name, age, gender))

# 关闭游标和连接
cursor.close()
conn.commit()
conn.close()

这个脚本做了以下事情:

  1. 连接到SQLite数据库
  2. 创建一个游标对象
  3. 创建一个名为“students”的表
  4. 打开CSV文件并将数据插入到表中
  5. 关闭游标和连接
总结

在Python中使用sqlite3模块可以轻松地将CSV文件中的数据导入到SQLite数据库表中。这个过程包含三个步骤:安装SQLite3和Python SQLite3模块、创建目标数据库表和导入CSV文件。