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)