如何使用Python将 CSV 文件导入 SQLite 数据库表?
在本文中,我们将讨论如何使用Python将 CSV 文件内容导入 SQLite 数据库表。
方法:
- 首先,我们导入csv模块(用于处理 csv 文件)和sqlite3模块(用于填充数据库表)。
- 然后我们使用 sqlite3.connect() 方法连接到我们的极客数据库。
- 此时,我们创建一个游标对象来处理对数据库表的查询。
- 我们首先创建我们的person表并创建一个 csv 文件,其中包含我们将插入到我们表中的内容。
- 我们使用open()函数打开上面创建的 csv 文件。
- 我们通过 csv.reader() 方法将 csv 文件的所有内容提取到我们的内容变量中。
- 然后我们通过executemany() 方法将 csv 文件的按行内容插入到我们的数据库中,该方法将用 csv 文件的下两个逗号分隔数据替换 (?,?) 并将其作为记录插入到person表中。
- 最后,我们使用 SELECT 语句验证 csv 文件的数据是否已成功插入到我们的表中,并提交更改并关闭数据库连接。
下面是实现。
为了实现,我们将在geeks.db数据库中创建一个person表。我们将在person表中插入person_records.csv的内容。下面是我们将要使用的 CSV 文件:
以下是基于上述方法的完整程序:
Python3
# Import required modules
import csv
import sqlite3
# Connecting to the geeks database
connection = sqlite3.connect('g4g.db')
# Creating a cursor object to execute
# SQL queries on a database table
cursor = connection.cursor()
# Table Definition
create_table = '''CREATE TABLE person(
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
age INTEGER NOT NULL);
'''
# Creating the table into our
# database
cursor.execute(create_table)
# Opening the person-records.csv file
file = open('person-records.csv')
# Reading the contents of the
# person-records.csv file
contents = csv.reader(file)
# SQL query to insert data into the
# person table
insert_records = "INSERT INTO person (name, age) VALUES(?, ?)"
# Importing the contents of the file
# into our person table
cursor.executemany(insert_records, contents)
# SQL query to retrieve all data from
# the person table To verify that the
# data of the csv file has been successfully
# inserted into the table
select_all = "SELECT * FROM person"
rows = cursor.execute(select_all).fetchall()
# Output to the console screen
for r in rows:
print(r)
# Commiting the changes
connection.commit()
# closing the database connection
connection.close()
输出:
SQLite: