urllib.quote()
を使用してパスワードをエスケープできるはずです。 。ただし、パスワードを引用符で囲むかエスケープするだけで、username:
を除外する必要があります。;それ以外の場合、:
%3A
にもエスケープされます 。
例:
import pymongo
import urllib
mongo_uri = "mongodb://username:" + urllib.quote("[email protected]") + "@127.0.0.1:27001/"
client = pymongo.MongoClient(mongo_uri)
上記のスニペットは、MongoDB v3.2.x、Python v2.7、およびPyMongov3.2.2でテストされています。
上記の例は、MongoDB URI接続文字列で想定されています:
- ユーザーは
admin
で作成されます データベース。 - ホストの
mongod
実行中は127.0.0.1(localhost) - ポート
mongod
割り当てられているのは27001
Python 3.xの場合、urllib.parse.quote()を利用して、%xx
を使用してパスワードの特殊文字を置き換えることができます。 逃れる。例:
url.parse.quote("[email protected]")