由于python升级到3.8,原来pymssql=2.1.4不支持该版本安装,只能进行升级,然而升级后却出现了乱码的情况,网上找了各种方法,但是都没解决,最后找到一种比较简便的方法,就是将乱码字符值直接进行显式转换:
1、假如读取的是元组,则采用如下代码:
cursor= conn.cursor() cursor.execute(query_sql) rs = cursor.fetchall() result=[] for row in rs: e=[str(item).encode('latin').decode('GBK') if item is not None else item for item in row ] k=tuple(e) result.append(k) # print(str(row[2]).encode('latin').decode('GBK')) # result.append(row) print(result) return result
2、假如读取的是字典类型的json
cursor= conn.cursor(as_dict=True) cursor.execute(query_sql) rows= cursor.fetchall() result=[] for row in rows: result=[{key:value.encode('latin').decode('GBK') if isinstance(value,str) and value else value for key,value in item.items() } for item in rows] return result