From CSV to SQLite3 by python 导入csv到sqlite实例

yizhihongxing

下面是从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技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • Jupyter Notebook内使用argparse报错的解决方案

    针对Jupyter Notebook中使用argparse报错的问题,可以采用以下的解决方案: 问题描述 在Jupyter Notebook中使用argparse时,可能会出现以下类似的报错信息: usage: ipykernel_launcher.py [-h] [–input INPUT] [–output OUTPUT] ipykernel_lau…

    python 2023年6月3日
    00
  • python 定义n个变量方法 (变量声明自动化)

    Python 中可以通过“一行定义n个变量”的方法快速初始化多个变量,避免了繁琐的定义和赋值过程。 具体操作方法如下: 定义多个变量,使用逗号进行分割。 将逗号分割的变量组成一个序列。 使用序列解包,将序列中的元素分别赋值给前面定义的变量。 示例1: # 定义三个变量x、y、z,同时进行初始化 x, y, z = 1, 2, 3 print(x, y, z)…

    python 2023年5月19日
    00
  • 预签名 URL:发布图像错误:签名不匹配:Python

    【问题标题】:presigned URL : Post image error: Signature does not match: Python预签名 URL:发布图像错误:签名不匹配:Python 【发布时间】:2023-04-01 02:58:02 【问题描述】: 我将在 lambda 中执行以下命令以生成预签名 URL ”’ import boto…

    Python开发 2023年4月8日
    00
  • python中 * 的用法详解

    下面是关于“Python中 * 的用法详解”的完整攻略。 一、* 的作为乘法运算符 在Python中,* 可以作为乘法运算符使用,用来进行两个数的乘法运算。示例代码如下: a = 3 b = 4 c = a * b # c的值为12 二、* 的作为可变参数 在Python函数定义过程中,可以使用*来代表可变参数。表示函数可以接受任意多个参数。 def fun…

    python 2023年5月31日
    00
  • Python 高阶函数的装饰器

    下面我会详细讲解Python高阶函数的装饰器使用方法的完整攻略。 什么是装饰器 装饰器是一种可以在不修改原函数的情况下,给函数增加新的功能且可以动态修改功能的函数。在Python中,装饰器是一种语法糖,它通过@符号将一个函数名放在一个特定的函数上面来实现。 Python高阶函数的装饰器使用方法 使用装饰器的过程包括两个步骤:定义装饰器函数和使用装饰器函数。 …

    python-answer 2023年3月25日
    00
  • 解决python3.5 正常安装 却不能直接使用Tkinter包的问题

    针对 Python3.5 正常安装却不能直接使用 Tkinter 包的问题,可以按照以下步骤进行解决: 问题分析 在 Python3.5 中,Tkinter 包已经默认安装,但在某些情况下可能无法正常使用,这是因为 Tkinter 包本身依赖于 Tcl/Tk 库,如果 Tcl/Tk 库没有正确安装或者环境变量没有配置好,Tkinter 包就无法直接使用。 解…

    python 2023年6月13日
    00
  • python多线程死锁现象及解决方法

    关于“Python多线程死锁现象及解决方法”的攻略,我将从以下几个方面进行讲解: 死锁现象的定义和产生原因 死锁示例演示 解决方法 1. 死锁现象的定义和产生原因 多线程是一种常见的解决并发问题的方式,而死锁是多线程中常见的问题之一。死锁指的是两个或者多个线程,相互等待对方释放所占用的资源而无法继续执行下去的情况。 产生死锁的原因通常是由于线程之间争夺共享资…

    python 2023年5月18日
    00
  • Python unittest生成测试报告过程解析

    Python unittest生成测试报告过程解析 Python unittest是Python自带的单元测试框架,可以用于编写和运行单元测试。在实际应用中,我们通常需要生成测试报告,以便更好地了解测试结果和问题。本文将详细讲解Python unittest生成测试报告的过程和方法。 安装HTMLTestRunner HTMLTestRunner是Pytho…

    python 2023年5月15日
    00
合作推广
合作推广
分享本页
返回顶部