我们要读取CSV文件的内容,并且要把数据存入数据库
我们要读取CSV文件的内容,并且要把数据存入数据库
首先与数据库建立连接
port是数据库端口一般3306,user是创建数据库的用户名,password是数据库连接密码,db数据库名称
#建立连接 conn = pymysql.connect(host='localhost', port=3306, user='***', password='****', db = db_name, charset='utf8') #建立游标对象 cursor = conn.cursor()
读取csv文件的内容
url是你本地csv文件的路径,注意如果路径带中文名不要直接pd.read_csv(“url”),会报错
#调用pandas,获得.csv文件 f = open('url') df = pd.read_csv(f)
之后就循环遍历每条数据,并且插入数据库
每条数据单独添加,故需要每次重写sql语句
for each in df.values: #每条数据应该单独添加,故需要重写sql语句 sql = 'insert into ' + table_name + ' values(' for i,n in enumerate(each): if i < (len(each) - 1): sql = sql + str(n) + ',' else: sql = sql + str(n) + ')' sql = sql + ';' #print(sql) #一条sql语句生成,提交执行 cursor.execute(sql) conn.commit()
踩过的坑
1、建立连接,数据库一定要存在,名称一定要对,否则报错database不存在
2、pandas读取.csv文件,但是文件路径有中文,故需要用以下方式读取,若直接 df = pd.read_csv(‘url’)会报错,巴拉巴拉一大堆
f = open(‘url’)
df = pd.read_csv(f)
3、数据库中要先创建好表table,并且存放格式一定要和table表中的格式对应
完整代码
import pymysql import pandas as pd def get_con(db_name): #建立连接 conn = pymysql.connect(host='localhost', port=3306, user='***', password='***', db = db_name, charset='utf8') #建立游标对象 cursor = conn.cursor() return conn, cursor def insert_Data(db_name, table_name): #调用get_con返回conn, cursor conn, cursor = get_con(db_name) #调用pandas,获得.csv文件 f = open('url') df = pd.read_csv(f) #循环遍历df,获取每一条数据 #count记录数据条数 count = 0 for each in df.values: #每条数据应该单独添加,故需要重写sql语句 sql = 'insert into ' + table_name + ' values(' for i,n in enumerate(each): if i < (len(each) - 1): sql = sql + str(n) + ',' else: sql = sql + str(n) + ')' sql = sql + ';' #print(sql) #一条sql语句生成,提交执行 cursor.execute(sql) conn.commit() #每提交一次,count加一 count = count + 1 print(str(count) + '条数据提交成功!') return conn, cursor def main(db_name, table_name): conn, cursor = insert_Data(db_name, table_name) conn.close() cursor.close() if __name__ == '__main__': main('map_data', 'pipedatas')
附数据库增删改查操作命令
数据库基本操作:增删改查
选择:select * from table1 where 范围
插入:insert into table1(field1,field2) values(value1,value2)
删除:delete from table1 where 范围
更新:update table1 set field1=value1 where 范围
查找:select * from table1 where field1 like ’%value1%’ —like的语法很精妙,查资料!
排序:select * from table1 order by field1,field2 [desc]
总数:select count as totalcount from table1
求和:select sum(field1) as sumvalue from table1
平均:select avg(field1) as avgvalue from table1
最大:select max(field1) as maxvalue from table1
最小:select min(field1) as minvalue from table1
- PHP读取CSV文件内容 并且插入到数据库中
- PHP读取CSV文件把数据插入到数据库,本地没有问题,阿里云测试服务器不行
- 简洁的从txt文件中读取数据并且修改数据重新存入
- 使用POI实现上传ecxel文件,并读取其中数据并存入数据库
- Java读取csv文件并将内容插入到数据库
- node.js 读取csv文件数据处理导入mongodb 数据库
- asp.net 导入CSV 文件内容 到 SQL Server 数据库 解决CSV内容数据重复添加问题
- 读取csv文件数据内容进行图形绘制(vc++描述)
- 从数据库中读取出的数据如何在GridView显示成我们所需要的内容?
- java读取目录下所有csv文件数据,存入三维数组并返回
- asp.net 读取 (导入) CSV文件内容 到页面 (数据库)
- 测试sq3数据库,读取数据库把内容输出到csv文件,附上输出到excel方法
- C#创建数据库和表并把读取到的csv数据存入新建表中
- 读取含有json格式数据的txt文件 并且把数据保存到数据库
- 如何读取csv文件并存入数据库?
- python3将csv文件中的两列数据读取出来,并且按行写入txt文本之中
- 读取文本.EFZ文件数据,存入数据库
- Java读取csv文件并将内容插入到数据库
- java读取csv文件,跳过第一行,将数据导入到数据库中,使用javacsv
- 使用joomla通过CSV文件上传数据存入数据库并使用JavaScript验证码是否符合规则