Tato otázka/odpověď je možná duplikátem této, takže stojí za to zkontrolovat nejprve tuto Zápis připojovacího řetězce, když heslo obsahuje speciální znaky
Podle dokumentace SQLAlchemy
the string format of the URL is an RFC-1738-style string.
Podle definice 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.
Za tímto účelem bych předpokládal, že vaše heslo (a uživatelské jméno v tomto případě) musí být zakódováno do adresy URL, aby bylo zajištěno, že všechny takové znaky budou správně kódovány. Podle Jak urlenkódovat řetězec dotazů v Pythonu?
to lze provést v pythonu pomocí urlencode()