Python сохраняет escape-символ в переменной

#python #sql-server #pyodbc

#python #sql-сервер #pyodbc

Вопрос:

Я хочу подключиться к SQL Server с помощью PyODBC.

 connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER=' server ';DATABASE=' database ';UID=' username ';PWD='  password)
 

username Должно быть "MYCOMPANYusername" так, я установил переменные username следующим образом: username = "MYCOMPANY\username" .

Проблема в том, что я получаю эту ошибку :

 pyodbc.InterfaceError: ('28000', "[28000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Login failed for user 'MYCOMPANY\username'. (18456) (SQLDriverConnect); [28000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Login failed for user 'MYCOMPANY\username'. (18456)")
 

Я не понимаю, почему строка сохраняет «\».

Кто-нибудь может помочь мне с этим, пожалуйста?

Комментарии:

1. У переменной нет проблем, просто python пытается быть helpful и показывает вам, где ` находится в строке.

2. Проблема в том, что вы пытаетесь использовать учетную запись AD как учетную запись проверки подлинности SQL; это не работает. Используйте либо логин для проверки подлинности SQL, либо доверенное соединение. Даже если Python отобразит MYCOMPANYusername реальную проблему, она не изменится. Вы не можете передать имя пользователя и пароль для рекламного аккаунта в строке подключения.

Ответ №1:

Затем вы можете использовать .encode .decode :

 username.encode().decode('unicode_escape')