Sql 需要在python中传递单\字符的字符串

Sql 需要在python中传递单\字符的字符串,sql,python-3.x,escaping,pyodbc,credentials,Sql,Python 3.x,Escaping,Pyodbc,Credentials,我已经看过各种解决方案,并且熟悉使用\作为转义字符。我需要通过pyodbc传递凭据,在创建连接字符串时需要传递凭据,不幸的是,我的用户名的格式是domain\username。我不断收到错误,因为传递给SQL server的文本字符串是domain\username。我在这里看到了一个关于url请求的例子。我试着实现它,但一旦实际凭证被解码,我就会出现同样的错误。我尝试过各种各样的字符串和原始字符串技巧,我能得到的最好结果是“\”(后面有空格)或者将“\”直接传递给SQL Server。有什么想

我已经看过各种解决方案,并且熟悉使用\作为转义字符。我需要通过pyodbc传递凭据,在创建连接字符串时需要传递凭据,不幸的是,我的用户名的格式是domain\username。我不断收到错误,因为传递给SQL server的文本字符串是domain\username。我在这里看到了一个关于url请求的例子。我试着实现它,但一旦实际凭证被解码,我就会出现同样的错误。我尝试过各种各样的字符串和原始字符串技巧,我能得到的最好结果是“\”(后面有空格)或者将“\”直接传递给SQL Server。有什么想法吗

#username and password is an argument passed from the console, lets just focus on username issue

username = bytes(sys.argv, 'utf8')
credentials = base64.b64encode(usename, altchars = bytes('\ ', 'utf8') )

cnxnstrng = f'''Driver={SQL Server};
Server=server;
Database=database};
UID={base64.b64decode(credentials)};
PWD=password'''

看起来你让事情变得比需要的困难多了。反斜杠不是需要在ODBC连接字符串中转义的“特殊”字符,因此
r'domain\username'
应该“正常工作”。请回答您的问题,说明您遇到了哪些具体错误。是的,我想是的,但我遇到了一个登录错误[28000],上面写着“无法登录用户域\\用户名”。我想是由于传递了额外的\导致了这一错误,因为实际的用户名是domain/username而不是domain\\username。这可能只是一个显示工件,类似于您在执行
print(repr(r'hello\world'))
时所看到的情况。看起来您让事情变得比需要的困难得多。反斜杠不是需要在ODBC连接字符串中转义的“特殊”字符,因此
r'domain\username'
应该“正常工作”。请回答您的问题,说明您遇到了哪些具体错误。是的,我想是的,但我遇到了一个登录错误[28000],上面写着“无法登录用户域\\用户名”。我想是由于传递了额外的\导致了这一错误,因为实际的用户名是domain/username而不是domain\\username。这可能只是一个显示工件,类似于您在执行
print(repr(r'hello\world'))