说明:因项目需求,需要从open Image数据集下载某一类数据集到本地,所以在下载相关的cvs文件后,想要从数据库层面处理得到的cvs文件,并查询得到相关图像的url地址。此篇文章主要记录读取cvs文件数据并存入到数据库的过程。
1. 前提说明
- 开启mysql服务器
- 建立数据数据库
- 建立数据表
- 导入python包
import pymysql
import csv
import codecs
2.python链接数据库
conn = pymysql.connect(host='localhost', port=3306, user='数据库用户', passwd='密码', db='数据库名称', charset='utf8')
3. python读取cvs数据
- 本任务需求:把表格的第一列,第11列数据存入到数据库
- 数据库“competition”
- 数据库表“c_image”:ImageID,ThumbURL
-
表格的内容及样式
# 定义读取文件的函数 filename参数为要读取的表格名称
def readCVS(filename):
with codecs.open(filename=filename, mode='r', encoding='utf-8') as f:
reader = csv.reader(f)
# 获取了第一行数据(操作的image表可知第一行为title,所以不存入数据库),没有做任何动作,之后的for循环直接从第二行开始读取执行
next(reader)
conn = pymysql.connect(host='localhost', port=3306, user='root', passwd='123456', db='competition', charset='utf8')
cur = conn.cursor()
sql = 'insert into c_image values(%s,%s)'
for item in reader:
'''读取图像表格的第1列,和第11列并转换为元组,其中注意(item[0], item[10])组合之后再元组'''
args = tuple((item[0], item[10]))
print(args)
cur.execute(sql, args)
conn.commit()
cur.close()
conn.close()
4.补充说明
- 读取文件所需几列存储数据库表
直接使用上面方式即可args = tuple((item[0], item[10]))
-读取文件所有列存储数据库表
args = tuple(item)