mysql数据库中多张表导出成excel方式

需求:

用于将mysql数据库中的几百张表导出成excel方式

表中有些字段的值是含有双引号和逗号值,比如json值

表中有些字段是汉字内容

导出的excel要求有表的列名

shell对于含有逗号和双引号的值会错乱分割

数据库中某些字段值是化学符号

python 复制代码
import pymysql,os,csv,shutil
target_dir=r'C:\Users\XXX\Desktop\excel'
if  os.path.exists(target_dir):
	shutil.rmtree(target_dir)
	os.mkdir(target_dir)
else:
	os.mkdir(target_dir)

myconn=pymysql.connect(host='localhost',port=3306,user='root',password='123456',database='rhtx')
table_sql="select table_name from information_schema.tables where table_schema='rhtx'"
with myconn.cursor() as cursor:
	cursor.execute(table_sql)
	table_name=list(cursor.fetchall())

for name in table_name:
	file_name=name[0]+".csv"
	file_path = os.path.join(target_dir, file_name)
	sql='select * from '+'rhtx.'+name[0]
	with myconn.cursor() as cursor:
		cursor.execute(sql)
		rows=cursor.fetchall()
		with open(file_path, mode='w', newline='',encoding='gbk') as file:
			writer=csv.writer(file)
			writer.writerow([i[0] for i in cursor.description])
			writer.writerows(rows)
myconn.close()
相关推荐
weixin_421133412 分钟前
django xadmin 结合 minio
数据库·django·sqlite
白云偷星子23 分钟前
MySQL笔记14
数据库·笔记·mysql
Lucky GGBond1 小时前
使用 EasyExcel 封装通用 Excel 导出工具类
excel
绵绵细雨中的乡音1 小时前
MySQL 常用函数实操指南:从基础到实战案例
数据库·mysql
凉栀お_2 小时前
MySQL相关知识查询表中内容(第二次作业)
数据库·mysql
Java水解2 小时前
【SQL】MySQL中空值处理COALESCE函数
后端·mysql
ss2733 小时前
手写Spring第7弹:Spring IoC容器深度解析:XML配置的完整指南
java·前端·数据库
PFinal社区_南丞3 小时前
PostgreSQL-10个鲜为人知的强大功能
数据库·后端
misty youth3 小时前
配置openguass 教程(自存)
数据库·ubuntu·华为·openguass
shuair4 小时前
mysql8支持远程访问 -mysql5.7支持远程访问
linux·mysql