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("[email protected]") + "@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
admin
database. - Værten
mongod
kører på er 127.0.0.1 (localhost) - Porten
mongod
tildelt 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("[email protected]")