您应该可以使用来转义密码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和PyMongo v3.2.2进行了测试。
上面的示例在MongoDB URI连接字符串中假设:
对于Python 3.x,可以使用urllib.parse.quote()来使用%xx
转义符替换密码中的特殊字符。例如:
url.parse.quote("p@ssword")