CSV按行写入pymysql
工作要将生成的数据写入mysql,但是对于pymysql的相关资料较少,分享一下我的方法,希望能够有所帮助
`
#数据库连接信息
def get_mysql_con():
return pymysql.connect(host='xxx', port=xxx, user='xxx', passwd='xxx', db='xxx', cursorclass=pymysql.cursors.SSCursor,charset='utf8')
def noneToEmp(str):
if str == None:
str = ''
return str
#将csv数据按行写入到数据库中
def create_table(file1):
conn = get_mysql_con()
cursor = conn.cursor()
table_name = 'xxx'
try:
sql = 'select * from xxx'
cursor.execute(sql)
des = cursor.description
col_lst = []
for i in range(len(des)):
col_lst.append(des[i][0])
#获取数据库列名及列数
des_tup = tuple(col_lst)
args1 = ','.join(['%s']*len(des_tup))
with open(file1, 'rb') as f:
reader = csv.DictReader(f)
all_values = []
for row in reader:
value_lst = []
for field_name in des_tup:
value = noneToEmp(row.get(field_name))
value_lst.append(value)
all_values.append(value_lst)
#要用.format传递对应值
sql1 = 'INSERT INTO {} VALUES ({})'.format(table_name,args1)
cursor.executemany(sql1,all_values)
conn.commit()
except Exception, e:
print e
finally:
cursor.close()
conn.close()
`
本文介绍了一种使用pymysql将CSV文件数据按行写入MySQL数据库的方法,包括数据库连接配置、读取CSV文件、处理空值以及执行批量插入操作的具体实现。
1123

被折叠的 条评论
为什么被折叠?



