Sie sollten das Passwort mit urllib.quote()
maskieren können . Obwohl Sie das Passwort nur in Anführungszeichen/Escapezeichen setzen und den username:
ausschließen sollten;ansonsten der :
wird auch in %3A
maskiert .
Zum Beispiel:
import pymongo
import urllib
mongo_uri = "mongodb://username:" + urllib.quote("[email protected]") + "@127.0.0.1:27001/"
client = pymongo.MongoClient(mongo_uri)
Das obige Snippet wurde für MongoDB v3.2.x, Python v2.7 und PyMongo v3.2.2 getestet.
Das obige Beispiel wird in der MongoDB-URI-Verbindungszeichenfolge angenommen:
- Der Benutzer wird im
admin
angelegt Datenbank. - Der Wirt
mongod
läuft unter 127.0.0.1 (localhost) - Der Hafen
mongod
zugewiesen ist 27001
Für Python 3.x können Sie urllib.parse.quote() verwenden, um Sonderzeichen in Ihrem Passwort mit %xx
zu ersetzen fliehen. Zum Beispiel:
url.parse.quote("[email protected]")