Du bør være i stand til at undslippe adgangskoden ved at bruge urllib.quote() . Selvom du kun bør citere/undgå adgangskoden og udelukke username:;ellers : vil også blive escaped til %3A .
For eksempel:
import pymongo
import urllib
mongo_uri = "mongodb://username:" + urllib.quote("example@sqldat.com") + "@127.0.0.1:27001/"
client = pymongo.MongoClient(mongo_uri)
Ovenstående kodestykke blev testet for MongoDB v3.2.x, Python v2.7 og PyMongo v3.2.2.
Eksemplet ovenfor antaget i MongoDB URI-forbindelsesstrengen:
- Brugeren oprettes i
admindatabase. - Værten
mongodkører på er 127.0.0.1 (localhost) - Porten
mongodtildelt til er 27001
For Python 3.x kan du bruge urllib.parse.quote() til at erstatte specialtegn i din adgangskode ved hjælp af %xx flugt. For eksempel:
url.parse.quote("example@sqldat.com")