python查询数据库数据并将数据写入csv文件,并读取

这篇博客演示了如何使用Python的mysql.connector库连接数据库并执行SQL查询,获取数据后将其写入CSV文件。示例中展示了如何处理长数字在CSV中显示为科学计数法的问题,通过在数字后添加' '来避免这种情况。此外,还提供了读取CSV文件的代码。
摘要由CSDN通过智能技术生成

1、连接数据库

import mysql.connector
#连接测试数据库
mydb = mysql.connector.connect(
    host="10.100.0.0",
    user="root",
    passwd="root",
    database="rongpia"
)

#获取游标
mycursor=mydb.cursor()

2、执行sql语句,sql语句外加引号

sql = "select status,red_status,order_id from cd_order where seller_tax_code in ('91510100MA6CT7K03N','92510100MA6C5AH52D')"
mycursor.execute(sql)

3、将取得的数据读出来

mycursor.fetchone()        读取首行数据并以元组形式返回

(4, 0, '2019051711273887000476636755')

mycursor.fetchall()           返回多行数据并以元组形式返回

(4, 0, '2019051711273887000476636755')
(3, 0, '2019051711285287000118015437')
(3, 0, '2019051711295687000831392646')
(1, 0, '2019051713350187000538274205')

        本处选择fetchall()

4、将取得的数据写入csv文件

import csv   
with open('a.csv','w+',newline='') as file:
        write=csv.writer(file)
        for i in myresult:
            a = list(i)
            write.writerow(a)

***注意:

        1、写入数据的方式,type=list 

                writer.writerow(list1)  输入一行内容,将列表list1中的所有元素输入到文件一行。

                writer.writerows(listt2)        输入多行内容,将列表list1中的元素输入到文件多行,列表list1中的每个元素占一行,list2中的元素需为“可迭代的元素”,字符串是可迭代,整数是不可迭代的。

        2、文件的写入必须在with  as 块内,因为with  as会在缩进外自动关闭文件,不能再写入。

        3、写入的数字过长,在CSV中写成了科学计数法样式

                

                解决方式:在写入的字符串后加上 '\t'  横向制表符

[3, 0, '2019051711285287000118015437']
[3, 0, '2019051711285287000118015437\t']

 5、读取csv文件

f=open('a.csv','r')
a=f.readlines()
for i in a:
    print(i)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值