下面是从CSV导入SQLite3数据库的完整攻略:
1. 准备工作
在使用Python导入CSV文件之前,需要先安装Python的csv和sqlite3模块,具体的方法为:
pip install csv
pip install sqlite3
2. 读取CSV文件
首先,需要使用Python内置的csv模块读取CSV文件,然后将文件中的数据存储到列表中。下面是一个读取CSV文件的示例代码:
import csv
with open('data.csv', 'r') as file:
reader = csv.reader(file)
data = list(reader)
print(data)
在这个示例中,我们读取了名为"data.csv"的CSV文件,并将文件中的每一行存储到列表"data"中。可以使用print(data)打印这个列表,看看它是否包含了CSV文件中的所有数据。
3. 创建SQLite3表格
在导入CSV数据之前,需要先在SQLite3数据库中创建一个表格来存储数据。下面是一个创建表格的示例代码:
import sqlite3
connection = sqlite3.connect('database.db')
cursor = connection.cursor()
cursor.execute('CREATE TABLE IF NOT EXISTS data (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)')
在这个示例中,我们创建了一个名为"data"的表格,包含了三个列:id、name和age。其中,id列是主键,并自动递增。
4. 导入CSV数据到SQLite3
接下来,需要使用Python的sqlite3模块将数据从列表"data"导入到SQLite3数据库中。下面是一个导入数据的示例代码:
import sqlite3
connection = sqlite3.connect('database.db')
cursor = connection.cursor()
for row in data:
cursor.execute('INSERT INTO data (name, age) VALUES (?, ?)', (row[0], row[1]))
connection.commit()
connection.close()
在这个示例中,我们使用循环遍历列表"data"中的每一行数据,并将它们逐一插入到SQLite3数据库中。注意,我们在SQL语句中没有指定id列,这是因为id列是自动递增的。
5. 查询SQLite3数据
最后,可以使用Python的sqlite3模块查询SQLite3数据库中的数据。下面是一个查询数据的示例代码:
import sqlite3
connection = sqlite3.connect('database.db')
cursor = connection.cursor()
cursor.execute('SELECT * FROM data')
rows = cursor.fetchall()
for row in rows:
print(row)
connection.close()
在这个示例中,我们使用SQL语句"SELECT * FROM data"从"data"表格中查询所有行数据,并将它们逐一打印到控制台上。
示例
假设我们有一个名为"data.csv"的CSV文件,其中包含了以下数据:
name,age
Alice,25
Bob,30
Charlie,35
我们可以使用以上代码来读取这个CSV文件,并将它的数据导入到SQLite3数据库中。然后,可以使用以下代码来从SQLite3数据库中查询数据并将它们打印到控制台上:
import csv
import sqlite3
# 读取CSV文件
with open('data.csv', 'r') as file:
reader = csv.reader(file)
data = list(reader)
# 创建SQLite3表格
connection = sqlite3.connect('database.db')
cursor = connection.cursor()
cursor.execute('CREATE TABLE IF NOT EXISTS data (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)')
# 导入CSV数据到SQLite3
for row in data:
cursor.execute('INSERT INTO data (name, age) VALUES (?, ?)', (row[0], row[1]))
connection.commit()
# 查询SQLite3数据
cursor.execute('SELECT * FROM data')
rows = cursor.fetchall()
for row in rows:
print(row)
connection.close()
以上代码会输出以下结果:
(1, 'Alice', 25)
(2, 'Bob', 30)
(3, 'Charlie', 35)
以上就是从CSV到SQLite3的完整攻略,希望能对你有所帮助!
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:From CSV to SQLite3 by python 导入csv到sqlite实例 - Python技术站