赞
踩
第一次写博客,我也不知道怎么写,想写点东西,就随便写写(0.0)(0.0),
我在网上搜这个问题的解决办法,给出的答案感觉不是很理想,所以写这篇,随便作为开头。
数据(csv文件中)是通过python的faker库,和random随机生成的。
用python,用的第三方库是pymysql,如果没安装可以用pip install pymysql安装。
要实现这个目的,要经过三步
1,读取到csv文件中的数据
2,数据与mysql语句合并
3,执行sql语句
第一步先放一边,不看
看第二步和第三步
- # 需要执行的mysql语句
- # insert into table_name(A) values(B)
- """
- (A)
- 在mysql里面需要传入的是列的名字
- 在python里面应该指的是一个元组
- 对于(B)
- 在mysql里应该传入的是数据
- 对于pathon还是理解为元组
- """
- # 我直接给出主要代码
- def insert_data(self,table_name, **kwargs):
- args = ','.join(kwargs.keys())
- # args的类型是str
- c = str(tuple(kwargs.values()))
- a = f'insert into {table_name}({args})values ' + c
- d = a + ';'
- self.sql(d)
- #第三步,执行
- #self.sql是封装的execute和comment
- # 这个代码我经过了面向对象的封装,用了**kwargs,而没有用*args
- """
- table_name指表的名字
- **kwargs,动态参数列表,正好把表名作为键,把数据作为值。在方法里面可以分开,并提取出来
- """
- # 假如把d打印出来(有数据了)
- # print(d)
- # 结果为
- # insert into student(name,age,chinese,english,math)values ('周秀珍', 12, 99, 61, 92);
- # mysql可以执行
- # 如图
第二步,第三步其实已经完成
第一步,直接给出代码
这一步不用多说,不理解可以搜索。
- import pandas as pd
- a=pd.read_csv(path)
- #path 指的的文件路径
- for i in a.iterrows():
- name=i[1]['name']
- age=i[1]['age']
- chinese=i[1]['chinese']
- english=i[1]['english']
- math=i[1]['math']
- # name,age等是数据
创建一张表,把上面数据插入
运行前
可以看到是表空的
代码
- from logo.go import G
- import pandas as pd
- g=G()
- g.use_db('school')
- a=pd.read_csv(path)
- for i in a.iterrows():
- name=i[1]['name']
- age=i[1]['age']
- chinese=i[1]['chinese']
- english=i[1]['english']
- math=i[1]['math']
- g.insert_data('student',name=name,age=age,chinese=chinese,english=english,math=math)
- g.close()
- # 代码是经过封装的
- #name=name,第一个name是表的名字,第二个name是数据
运行后
成功,完美
声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。