To pytanie/odpowiedź jest prawdopodobnie duplikatem tego, więc warto je najpierw sprawdzić Pisanie ciągu połączenia, gdy hasło zawiera znaki specjalne
Zgodnie z dokumentacją SQLAlchemy
the string format of the URL is an RFC-1738-style string.
Zgodnie z definicją RFC-1738
If the character corresponding to an octet is
reserved in a scheme, the octet must be encoded. The characters ";",
"/", "?", ":", "@", "=" and "&" are the characters which may be
reserved for special meaning within a scheme.
W tym celu zakładam, że Twoje hasło (i nazwa użytkownika w tym przypadku) musi być zakodowany w adresie URL, aby zapewnić prawidłowe uniknięcie takich znaków. Według Jak urlencode ciągu zapytania w Pythonie?
można to zrobić w Pythonie za pomocą urlencode()