设为首页 加入收藏

TOP

Python连接SQL Server获取数据转JSON
2017-12-23 06:07:11 】 浏览:719
Tags:Python 连接 SQL Server 获取 数据 JSON
# -*- coding: utf-8 -*-
'''
不同的SQL server版本对应的DRIVER字段不同。对应关系如下
{SQL Server} - released with SQL Server 2000
{SQL Native Client} - released with SQL Server 2005 (also known as version 9.0)
{SQL Server Native Client 10.0} - released with SQL Server 2008
{SQL Server Native Client 11.0} - released with SQL Server 2012
'''
import sys
reload(sys)
sys.setdefaultencoding('utf-8')

import json,pyodbc

def Table():
    try:

        conn=pyodbc.connect(r'DRIVER={SQL Server Native Client 10.0};SERVER=1.1.1.1;DATABASE=test_1;UID=1;PWD=123')
        cursor = conn.cursor()
        cursor.execute("select F1,F2,F3,F4 from A2017")
        jsonDate=[]
        rows = cursor.fetchall()
        # 循环读取元组数据
        for row in rows:
            result={}
            result['F1']=row[0]
            result['F2'] = row[1]
            result['F3'] = row[2]
            result['F4'] = row[3]
            jsonDate.append(result)
    except:
        print 'ss'
    else:
        #加ensure_ascii=False,能够防止中文乱码。
         jsonDateChar=json.dumps(jsonDate,ensure_ascii=False)
        #去除中括号
         return jsonDateChar[1:len(jsonDateChar)-1]

if __name__=='__main__':
    # 调用函数
    jsonData=Table()
    #JSON保存文件名
    w=open(r'H:\json.txt','w+')
    # 写数据
    w.write(jsonData)
    w.close()

头部文件

import sys
reload(sys)
sys.setdefaultencoding('utf-8')

将字符串写入到文件时会出现"UnicodeEncodeError: 'ascii' codec can't encode characters in position 22-24: ordinal not in range(128)"的错误,原因是由于python基于ASCII处理字符的,当出现不属于ASCII的字符时,会出现错误信息。加入头部代码可以解决
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇模块讲解----json与pickle模块的.. 下一篇Python自动化--语言基础8--接口请..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目