📅  最后修改于: 2023-12-03 15:30:13.115000             🧑  作者: Mango
在数据科学和数据分析中,CSV是一个非常常见的格式,SQLite是一个轻巧且易于使用的关系型数据库管理系统。本文将介绍如何使用Python和SQL将CSV文件转换为SQLite数据库。
使用sqlite3库操作SQLite数据库,需要在Python中导入该库。
import sqlite3
在Python中创建SQLite数据库,需要使用sqlite3库的connect()方法,并将要创建的数据库的名称作为参数传递。
具体实现如下所示:
conn = sqlite3.connect('example.db')
如果该数据库不存在,SQLite将创建一个新的数据库。
在SQLite中,需要先创建数据表,才能将数据添加到数据库中。数据表由行和列组成,每一行表示一个条目,每一列则表示该条目的一种属性。
在Python中,使用execute()方法执行SQL语句来创建数据表。
例如,将创建一个名为“table_name”的数据表,其中包含三个列:“col1”,“col2”和“col3”。
conn.execute('''CREATE TABLE table_name (col1 INT, col2 TEXT, col3 REAL);''')
可以按需要更改列的数据类型。
使用open()函数打开CSV文件,并使用csv库解析该文件。然后,可以将每一行插入到SQLite数据库表中。
下面是将“example.csv”文件导入“table_name”表的代码示例。
import csv
with open('example.csv', 'r', encoding='utf-8-sig', newline='') as csvfile:
reader = csv.reader(csvfile)
for row in reader:
conn.execute(
'INSERT INTO table_name (col1, col2, col3) VALUES (?, ?, ?);',
row
)
conn.commit()
在上面的示例中,'utf-8-sig' 编码用于解决在读取csv文件时遇到的BOM(Byte Order Mark)问题。
如果需要忽略CSV文件的标题行,可以使用next()方法跳过它。
一旦数据被添加到SQLite数据库中,可以使用SELECT语句检索数据。
下面是从“table_name”数据表中选择所有数据的代码示例。
cursor = conn.execute('SELECT * FROM table_name;')
for row in cursor:
print(row)
或者在matplotlib或pandas中使用SQL语句,以处理、可视化或操作查询结果。
使用完SQLite数据库后,必须关闭连接。可以使用Python中的close()方法完成此操作。
conn.close()
SQLite是一个灵活且易于使用的关系型数据库管理系统。通过使用Python中的csv库和sqlite3库,可以方便地将CSV文件导入SQLite数据库中。感谢您的阅读,希望这篇文章对您有所帮助!