Red de conocimiento informático - Material del sitio web - ¿Cómo utilizar pymssql para solucionar el problema confuso de Python3.4?

¿Cómo utilizar pymssql para solucionar el problema confuso de Python3.4?

En el proyecto, descubrí un problema de este tipo: el código de la base de datos sqlserver es gbk, y al usar python3.4 pymssql para realizar consultas, los caracteres chinos están confusos. Después de pensar un poco, compartiré la solución con usted:

conn = pymssql . connect(host = " 192.168.122.141 ",

port=1433,

usuario="mitienda ",

contraseña="oyf20140208HH ",

database="mySHOPCMStock ",

charset='utf8 ',

as_dict = True)cur = conn . cursor()SQL = "seleccione los 10 principales [ID], [Nombre] de [Usuario]" cur .execute(SQL)list = cur .fetchall()for list :print( fila["ID"],fila["Nombre"]). codificar ('latín-1'). Decode ('gbk')

A continuación, presentaré la conexión entre Python y la base de datos del servidor SQL usando pymssql.

#Encoding=utf-8

#!/usr/bin/env python

# -

# Nombre: pymssqlTest. py

#Propósito: probar la biblioteca pymssql, que se puede descargar aquí: mit()

self.conn.close()

"""

cur = self. __GetConnect()

Ejecución actual (sql)

self.conn.commit()

self.conn. close()

def main():

## ms = MSSQL(host="localhost ", usuario="sa ", pwd="123456 ", db="PythonWeiboStatistics ")

# # #Devuelve una lista que contiene tuplas. Los elementos de la lista son las filas de registros y los elementos de la tupla son los campos de cada fila de registros.

# # ms . ExecNonQuery(" insertar en los valores de WeiBoUser(' 2 ', ' 3 ')")

ms = MSSQL(host="localhost ", usuario="sa ", pwd="123456 " , db="PythonWeiboStatistics ")

resList = ms.ExecQuery("Seleccione ID de Weibo, weibocontent ")

Para (id, weibocontent) en resList:

Imprimir cadena (contenido de Weibo ("utf8")

if __name__ == '__main__ ':

Main()

Script House recuerda. que todos presten atención Asuntos:

Cuando se usa pymssql para operaciones chinas, los caracteres chinos pueden ser confusos. Mi solución es:

Agregar #coding=utf8 al encabezado del archivo. >

Codificación cuando hay chino en la declaración SQL.

InsertSQL = "Insertar en Weibo ([ID de usuario], [contenido de Weibo], [fecha de lanzamiento]) valor (1, 'Prueba', '2012/2/1')". codificación ("UTF8").

Agregue información de configuración del juego de caracteres al conectarse.

pymssql.connect(host=self.host, usuario=self.user, contraseña=self.pwd, base de datos=self.db, charset="utf8 ")