python2将sql_server表数据或sql数据导入csv

 1.将sql_server的表数据全部导入csv

# -*- coding: utf-8 -*-

import pymssql
import csv
import sys

reload(sys)
sys.setdefaultencoding("utf8")


def write_csv(cursor_tool, table_name):
    file_object = open("%s%s.csv" % (file_path, table_name), 'wb')
    writer = csv.writer(file_object)
    sql = "SELECT * FROM %s" % table_name
    cursor_tool.execute(sql)
    # 获取列名
    coloumns = [row[0] for row in cursor_tool.description]
    headers = [str(coloumn) for coloumn in coloumns]
    writer.writerow(headers)

    results = cursor_tool.fetchall()
    count = 0
    for i in results:
        one_list = []
        for j in i:
            one_list.append(j)
        writer.writerow(one_list)
        count += 1
        print count
    file_object.close()


# 要输出的csv文件夹
file_path = "/mnt/hehe/"

# 数据库信息
host = "192.168.1.111"
user = "root"
password = "123zxcv"
database = "base_name"

conn = pymssql.connect(host, user, password, database, charset="utf8")
cursor = conn.cursor()

# 表名列表,同时也是输出的csv文件名
table_names = ["table_name_1", "table_name_2", "table_name_3"]

for i in table_names:
    print i
    write_csv(cursor, i)
conn.close()

2.将sql_server的sql数据全部导入csv

# -*- coding: utf-8 -*-

import pymssql
import csv
import sys

reload(sys)
sys.setdefaultencoding("utf8")


def write_csv(cursor_tool, out_put_file, sql):
    file_object = open("%s%s.csv" % (file_path, out_put_file), 'wb')
    writer = csv.writer(file_object)
    cursor_tool.execute(sql)
    # 获取列名
    coloumns = [row[0] for row in cursor_tool.description]
    headers = [str(coloumn) for coloumn in coloumns]
    writer.writerow(headers)

    results = cursor_tool.fetchall()
    count = 0
    for i in results:
        one_list = []
        for j in i:
            one_list.append(j)
        writer.writerow(one_list)
        count += 1
        print count
    file_object.close()

# 要输出的csv文件夹
file_path = "/mnt/sql/"

# 数据库信息
host = "192.168.1.111"
user = "root"
password = "123zxcv"
database = "base_name"

conn = pymssql.connect(host, user, password, database, charset="utf8")
cursor = conn.cursor()

sql_1 = 'select * from table_name_1 limit 100'
sql_2 = 'select * from table_name_2 where name = "小红"'
# 要输出的csv文件名列表,与sql一一对应
out_put_files = ["测试1", "测试2"]
sqls = [sql_1, sql_2]

for i, j in zip(out_put_files, sqls):
    print i
    write_csv(cursor, i, j)
conn.close()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

纯洁的小魔鬼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值