使用来转义密码urllib.quote()
。虽然您只应引用/转义密码,但不包括username:
; 否则:
遗嘱也将被逃脱%3A
。
例如:
import pymongo import urllib mongo_uri = "mongodb://username:" + urllib.quote("p@ssword") + "@127.0.0.1:27001/" client = pymongo.MongoClient(mongo_uri)
上面的代码段已针对MongoDB v3.2.x,Python v2.7
对于Python 3.x,可以使用urllib.parse.quote()来使用%xx
转义符替换密码中的特殊字符。例如:
urllib.parse.quote()
以上方法,也适用于:sqlalchemy+pymssql连接语句密码的特殊字符转义:
engine = create_engine("mssql+pymssql://{}:".format(Login)+quote(Password)+"@{}/{}".format(Servername, DBname), echo=True)