Python équivalent de mysql_real_escape_string, pour obtenir des chaînes en toute sécurité dans MySQL?

Est-il un Python équivalent de PHP mysql_real_escape_string?

J'essaie d'insérer des chaînes de caractères dans une base MySQL directement à partir de Python, et continue de recevoir fauché par des guillemets dans les cordes.

mysql_string = "INSERT INTO candidate (name, address) VALUES  " 
for k, v in v_dict.iteritems():
    mysql_string += " ('" + v_dict['name'] + "', '" + v_dict['address'] + "'), "
mysql_string += ";"
cursor.execute(mysql_string)

J'ai essayé re.escape() mais qui échappe à tout caractère non alphanumérique dans les cordes, ce qui n'est pas ce dont j'ai besoin - j'ai juste besoin d'échapper les apostrophes dans cette instance (et plus généralement tout ce qui pourrait le voyage jusqu'à MySQL).

Pourrait le faire manuellement, je suppose, mais est-il une façon plus intelligente de le faire en Python?

source d'informationauteur AP257 | 2010-04-01