You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python字符串中使用#字符?MSSQL连接密码含#的解决方法

解决MSSQL密码含#的Python连接问题

不需要修改密码,根据你使用的数据库连接库,有几种直接可用的方法:

1. 使用pymssql(推荐参数传递方式)

pymssql支持直接将密码作为独立参数传入,完全不需要处理特殊字符:

import pymssql

# 直接传入含#的密码即可
conn = pymssql.connect(
    server="你的服务器地址",
    user="用户名",
    password="your#password",  # 这里直接写带#的密码
    database="目标数据库名"
)

2. 使用pyodbc

pyodbc的传统连接字符串中,#不属于特殊字符(ODBC连接字符串的注释符是--),所以可以直接写入:

import pyodbc

conn_str = (
    r"DRIVER={ODBC Driver 17 for SQL Server};"
    r"SERVER=你的服务器地址;"
    r"DATABASE=目标数据库名;"
    r"UID=用户名;"
    r"PWD=your#password"  # 直接包含#即可
)
conn = pyodbc.connect(conn_str)

3. 使用SQLAlchemy

如果用SQLAlchemy的URL格式连接,需要对#进行URL编码(编码为%23),或者用内置的URL构造器自动处理:

手动编码方式

from sqlalchemy import create_engine

# 将密码中的#替换为%23
engine = create_engine(
    "mssql+pyodbc://用户名:your%23password@服务器地址/数据库名?driver=ODBC+Driver+17+for+SQL+Server"
)
conn = engine.connect()

自动编码方式(推荐)

用SQLAlchemy的URL.create方法,会自动处理所有特殊字符,无需手动编码:

from sqlalchemy.engine import URL
from sqlalchemy import create_engine

url = URL.create(
    "mssql+pyodbc",
    username="用户名",
    password="your#password",  # 直接传入带#的密码
    host="服务器地址",
    database="数据库名",
    query={"driver": "ODBC Driver 17 for SQL Server"}
)
engine = create_engine(url)
conn = engine.connect()

内容的提问来源于stack exchange,提问作者jhseo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 21:21:03