python3+mysql-----一个简单的小实例,读取数据库数据并保存在excel里

需求:
连接数据库,读取数据库订单表的数据,并保存在csv文件中

第一次是这么写的:

#打开文件,存储数据
with open('output_data1.csv','w',newline ='') as file:
    writeobj = csv.writer(file)
    for row in results:
        writeobj.writerow(row[0])

报错:
原因是,csv 的writerow 函数只能写入一个序列,比如 list 或 array。通过循环result保存的row[0]不是一个序列

 writeobj.writerow(row[0])
_csv.Error: iterable expected, not int

修改:
下面直接保存游标获取的result,就可以了

import pymysql
import csv

"""
导入连接MySQL需要的包,没有安装pymysql需要先安装
使用命令行切换到python的安装路径下的scripts子目录下安装(pip install pymysql)
"""
#连接MySQL数据库
conn = pymysql.Connect(
    host='xxxxxxxxxx', #数据库服务器地址/自己电脑本地localhost
    port=3306, #端口号
    user='xxxxxxxx', #数据库登录名
    passwd='xxxxxx', #密码
    db='xxxxxxxx', #数据库名称
    charset='utf8' #字符集
)

#使用cursor()方法获取操作游标
cursor1 = conn.cursor()
#使用execute()方法执行sql语句
sql = 'select * from Purchase_Order_Main'  #通过sql语句,筛选符合要求的数据库表数据
cursor1.execute(sql)
#使用fetchone()方法获取所有数据
results = cursor1.fetchall()

#方法一:只把results取到的数据库数据打印出来,没有格式
with open('output_data.csv','w') as file:
     writeobj = csv.writer(file)
     writeobj.writerow(results)


#方法二:整理导出来的表格数据格式
with open('output_data3.csv','w',encoding='gbk',newline="") as file:
    writeobj = csv.writer(file)
    #首行的字段名,字段名太多,只写了一部分
    writeobj.writerow(["id", "order_number", "order_uuid"])
    #把游标取得的results,转化成list类型,在把list里的订单数据写到文件里
    for i in range(0,len(list(results))):
        writeobj.writerow(results[i])

print(len(list(results))) #输出订单数量,作为参照

#关闭游标、数据库
cursor1.close()
conn.close()
  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值