失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 解决python读取sqlserver数据库乱码问题

解决python读取sqlserver数据库乱码问题

时间:2022-01-02 12:25:24

相关推荐

解决python读取sqlserver数据库乱码问题

这个问题困扰了我一天,晚上11点多终于解决

代码如下

import pymssqlpd.set_option('display.max_column', None)com = pymssql.connect(server='host', user='user', password='password', database='database', charset='utf8')cursor = com.cursor()cursor.execute("SELECT name FROM SysObjects Where XType='U' and name like 'u_ware' ORDER BY Name")tables = cursor.fetchall()print(tables)sql = f"""select warename,wareid,barcode,convert(nvarchar(20), warespec) warespecb,convert(nvarchar(20), producer) producer,advsaleprice from {table[0]}""" # 重点是这个comvert函数,要把乱码列转成nvarchar类型cursor.execute(sql)res = cursor.fetchall()col = [i[0] for i in cursor.description]print(col)df = pd.DataFrame(res, columns=col)print(df)

下面是我试过的方法

我是把表格用pymssql读取出来,再编码

df1 = df.apply(lambda x: x['warename'].encode('cp936').decode('gb2312'), axis=1)

这里编码encode,解码decode,试尽了各种字符集,都没有用

这个问题终于解决,能睡个好觉了

如果觉得《解决python读取sqlserver数据库乱码问题》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。