国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

如何處理Python3.4 使用pymssql 亂碼問題

2020-01-04 17:51:39
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了如何處理Python3.4 使用pymssql 亂碼問題的相關資料,涉及到python pymssql相關知識,對此感興趣的朋友一起學習吧
 

在項目中發現這樣一個問題:sqlserver數據庫編碼為gbk,使用python3.4+pymssql 查詢,中文亂碼,經過一番思考問題解決,下面把解決辦法分享給大家:

conn = pymssql.connect(host="192.168.122.141", port=1433, user="myshop", password="oyf20140208HH", database="mySHOPCMStock", charset='utf8', as_dict=True) cur = conn.cursor()sql = "select top 10 [ID],[Name] from [User]"cur.execute(sql)list = cur.fetchall()for row in list: print(row["ID"],row["Name"].encode('latin-1').decode('gbk'))

接下來給大家介紹python 使用pymssql連接sql server數據庫

#coding=utf-8 #!/usr/bin/env python#-------------------------------------------------------------------------------# Name: pymssqlTest.py# Purpose: 測試 pymssql庫,該庫到這里下載:http://www.lfd.uci.edu/~gohlke/pythonlibs/#pymssql## Author: scott## Created: 04/02/2012#-------------------------------------------------------------------------------import pymssqlclass MSSQL:"""對pymssql的簡單封裝pymssql庫,該庫到這里下載:http://www.lfd.uci.edu/~gohlke/pythonlibs/#pymssql使用該庫時,需要在Sql Server Configuration Manager里面將TCP/IP協議開啟用法:"""def __init__(self,host,user,pwd,db):self.host = hostself.user = userself.pwd = pwdself.db = dbdef __GetConnect(self):"""得到連接信息返回: conn.cursor()"""if not self.db:raise(NameError,"沒有設置數據庫信息")self.conn = pymssql.connect(host=self.host,user=self.user,password=self.pwd,database=self.db,charset="utf8")cur = self.conn.cursor()if not cur:raise(NameError,"連接數據庫失敗")else:return curdef ExecQuery(self,sql):"""執行查詢語句返回的是一個包含tuple的list,list的元素是記錄行,tuple的元素是每行記錄的字段調用示例:ms = MSSQL(host="localhost",user="sa",pwd="123456",db="PythonWeiboStatistics")resList = ms.ExecQuery("SELECT id,NickName FROM WeiBoUser")for (id,NickName) in resList:print str(id),NickName"""cur = self.__GetConnect()cur.execute(sql)resList = cur.fetchall()#查詢完畢后必須關閉連接self.conn.close()return resListdef ExecNonQuery(self,sql):"""執行非查詢語句調用示例:cur = self.__GetConnect()cur.execute(sql)self.conn.commit()self.conn.close()"""cur = self.__GetConnect()cur.execute(sql)self.conn.commit()self.conn.close()def main():## ms = MSSQL(host="localhost",user="sa",pwd="123456",db="PythonWeiboStatistics")## #返回的是一個包含tuple的list,list的元素是記錄行,tuple的元素是每行記錄的字段## ms.ExecNonQuery("insert into WeiBoUser values('2','3')")ms = MSSQL(host="localhost",user="sa",pwd="123456",db="PythonWeiboStatistics")resList = ms.ExecQuery("SELECT id,weibocontent FROM WeiBo")for (id,weibocontent) in resList:print str(weibocontent).decode("utf8")if __name__ == '__main__':main()

VEVB武林網提醒大家需要注意事項:

使用pymssql進行中文操作時候可能會出現中文亂碼,我解決的方案是:

文件頭加上 #coding=utf8 

sql語句中有中文的時候進行encode

insertSql = "insert into WeiBo([UserId],[WeiBoContent],[PublishDate]) values(1,'測試','2012/2/1')".encode("utf8")

連接的時候加入charset設置信息

pymssql.connect(host=self.host,user=self.user,password=self.pwd,database=self.db,charset="utf8")
 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 简阳市| 壶关县| 泾阳县| 黑龙江省| 商城县| 莆田市| 乌兰县| 浏阳市| 大竹县| 彰化县| 思南县| 汝南县| 门头沟区| 永平县| 沅江市| 泸西县| 阿克| 新竹市| 响水县| 夏邑县| 衡阳市| 南澳县| 淳安县| 盘锦市| 和平县| 中卫市| 化州市| 阿图什市| 兴城市| 兴山县| 武邑县| 镇平县| 雷山县| 叶城县| 北川| 灌云县| 广灵县| 荣成市| 界首市| 错那县| 财经|