使用python将csv数据导入到sqlite中

脚本如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import csv
import sqlite3
def  dataImport(csvpath,dbpath,tablename):
    reader = csv.DictReader(open(csvpath,"rb"),delimiter=',',quoting=csv.QUOTE_MINIMAL)
    conn = sqlite3.connect(dbpath)
    # shz: fix error with non-ASCII input
    conn.text_factory = str
    c = conn.cursor()
    create_query = 'CREATE TABLE '+tablename +' ("cn" TEXT,"en" TEXT,"lat" DOUBLE,"lon" DOUBLE,"points" DOUBLE,"count" INTEGER,"intro" TEXT,"photo" TEXT,"url" TEXT,"content" TEXT)' 
    c.execute(create_query)
    for row in reader:
        print row
        to_db = [row['cn'], row['en'],row['lat'],row['lon'],row['points'],row['count'],row['intro'],row['photo'],row['url'],row['content']]
        c.execute('INSERT INTO '+tablename+' (cn, en, lat,lon,points,count,intro,photo,url,content) VALUES (?, ?, ?,?, ?, ?,?, ?, ?,?);', to_db)
    conn.commit()


查看原文:http://www.giser.net/?p=1337
  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要将CSV文件导入SQLite,您可以按照以下步骤操作: 1. 打开CSV文件并读取其数据。 2. 连接到SQLite数据库。 3. 创建一个表格,其包含与CSV文件的列相对应的列。 4. 将CSV文件数据插入到SQLite表格。 5. 关闭数据库连接。 以下是一个示例代码: ```python import csv import sqlite3 # 打开CSV文件并读取数据 with open('data.csv', 'r') as file: reader = csv.reader(file) data = [row for row in reader] # 连接到SQLite数据库 conn = sqlite3.connect('mydatabase.db') cursor = conn.cursor() # 创建表格 cursor.execute('''CREATE TABLE mytable (id INTEGER PRIMARY KEY, name TEXT, age INTEGER, gender TEXT)''') # 插入数据 for row in data: cursor.execute('INSERT INTO mytable (name, age, gender) VALUES (?, ?, ?)', row[1:]) # 提交更改并关闭连接 conn.commit() conn.close() ``` 请注意,此示例假定CSV文件的第一行包含列标题。如果不是这种情况,您需要相应地调整代码。 ### 回答2: CSV(Comma Separated Values)是一种常见的文本文件格式,该格式用逗号将数据字段分隔开,每个数据字段占一行。SQLite是一种轻量级的关系型数据库,它可以存储和管理大量的数据Python作为一个功能强大的编程语言,提供了许多库和模块用于CSV文件和SQLite数据库的操作。下面我们将详细介绍如何使用PythonCSV文件导入SQLite。 步骤一:安装必要的库 首先,我们需要安装SQLitecsv模块,在Python使用pip命令可以轻松安装这些模块: ``` pip install sqlite3 pip install csv ``` 步骤二:创建数据库和表 在Python,我们可以使用sqlite3模块连接到SQLite数据库。在连接到数据库之后,我们需要创建一个表来存储CSV文件数据。以下是一个示例代码,用于创建一个名为“employees”的表,这个表有三个列,“ID”,“Name”和“Salary”。 ``` import sqlite3 # 连接到SQLite数据库 conn = sqlite3.connect('employees.db') # 创建一个游标 cursor = conn.cursor() # 创建一个employees表 cursor.execute('''CREATE TABLE employees (ID INT PRIMARY KEY NOT NULL, Name TEXT NOT NULL, Salary REAL);''') # 关闭游标和连接 cursor.close() conn.close() ``` 步骤三:读取CSV文件 现在我们已经创建了数据库和表,下一步就是读取CSV文件。Pythoncsv模块提供了一种方便的方法来读取CSV文件数据。以下是一个示例代码,用于从名为“employees.csv”的文件读取数据并存储在列表。 ``` import csv # 打开CSV文件 with open('employees.csv', 'r') as csvfile: # 创建一个CSV阅读器 reader = csv.reader(csvfile) # 跳过标题行 next(reader) # 遍历CSV文件的每一行 for row in reader: # 将行插入到employee表 cursor.execute("INSERT INTO employees (ID, Name, Salary) VALUES (?, ?, ?)", row) ``` 步骤四:保存数据并关闭连接 一旦我们已经将数据插入到表,下一步就是保存数据和关闭连接。 ``` # 提交更改 conn.commit() # 关闭游标和连接 cursor.close() conn.close() ``` 经过这些步骤,我们成功地将CSV文件数据导入SQLite数据。在以后的工作,我们可以轻松地在SQLite数据查询、更新、删除和添加数据。 ### 回答3: Python 处理 CSV 文件和 SQLite 数据库都是比较常见的操作,如果能将 CSV 文件导入 SQLite 数据,可以方便地进行数据存储和查询等操作。以下是 PythonCSV 文件导入 SQLite 数据库的具体方法。 1. 首先需要安装 sqlite3 和 csv 两个模块,一般情况下,Python 自带安装,如果未安装可以使用以下命令安装: ```python import sqlite3 import csv ``` 2. 准备 CSV 文件和 SQLite 数据库,分别将它们放在合适的位置,本例将代码与数据组织在同一目录下。 3. 连接 SQLite 数据库并创建数据表,代码如下: ```python connection = sqlite3.connect("example.db") cursor = connection.cursor() cursor.execute('''CREATE TABLE example ( ID INT PRIMARY KEY NOT NULL, NAME TEXT, AGE INT, GENDER TEXT, ADDRESS TEXT );''') ``` 4. 读取 CSV 文件,并将数据插入 SQLite 数据库的数据,代码如下: ```python with open('example.csv') as csvfile: readCSV = csv.reader(csvfile, delimiter=',') for row in readCSV: cursor.execute('''INSERT INTO example(ID, NAME, AGE, GENDER, ADDRESS) VALUES(?,?,?,?,?)''', (row[0], row[1], row[2], row[3], row[4])) ``` 其csv.reader() 方法读取 CSV 文件,delimiter=',' 参数指定分隔符为逗号,逐行读取 CSV 文件数据,将其插入 SQLite 数据库的数据使用 execute() 方法执行 SQL 语句。 5. 提交更改: ```python connection.commit() ``` 6. 关闭数据库连接: ```python connection.close() ``` 以上就是 PythonCSV 文件导入 SQLite 数据库的详细步骤。需要注意的是,在实际的应用,要根据自己的数据表结构、数据内容和代码逻辑作出相应的调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值