Esta pregunta/respuesta es quizás un duplicado de esta, así que vale la pena revisarla primero Escribir una cadena de conexión cuando la contraseña contiene caracteres especiales
Según la documentación de SQLAlchemy
the string format of the URL is an RFC-1738-style string.
Según la definición 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.
Con este fin, asumiría que su contraseña (y el nombre de usuario para el caso) debe estar codificado en URL para garantizar que dichos caracteres se escapen correctamente. De acuerdo con ¿Cómo urlencode una cadena de consulta en Python?
esto se puede hacer en python usando urlencode()