urllib.quote()を使用してパスワードをエスケープできるはずです。 。ただし、パスワードを引用符で囲むかエスケープするだけで、username:を除外する必要があります。;それ以外の場合、: %3Aにもエスケープされます 。
例:
import pymongo
import urllib
mongo_uri = "mongodb://username:" + urllib.quote("example@sqldat.com") + "@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("example@sqldat.com")