Avec un script dans Python3
, après l'extraction des chaînes d'un fichier, ils doivent être utilisés en tant que données à insérer dans une base de données MySQL comme suit:requête Python et MySQL avec des guillemets
query1 = """INSERT INTO {:s} VALUES ({:s}, {:s}, {:s}, {:s});""".format(table1,"""0""",string1,string2,string3)
cursor1.execute(query1)
Certaines des chaînes contiennent différentes et des citations désagréables, comme:
a "'double quoted'" example string
Si je définis quelques exemples de chaînes triples guillemets délimiteurs
string1 = """a "'double quoted'" example string"""
la requête ci-dessus est réussie. Si les chaînes sont plutôt renvoyées par une fonction après l'analyse d'un fichier externe, la requête génère une erreur:
_mysql_exceptions.ProgrammingError: (1064, 'You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'first string, "\'Quoted part\'" of second string, , Third string\' at line 1')
J'ai essayé aussi avec:
query1 = """INSERT INTO {:s} VALUES ('{:s}', '{:s}', '{:s}', '{:s}');""".format(table1,"""0""",string1,string2,string3)
mais la même erreur est générée.
également
query1 = """INSERT INTO %s VALUES (%s, %s, %s, %s);"""
data1 = ("""table1"""","""0""",string1,string2,string3)
cursor1.execute(query1,data1)
et
query1 = """INSERT INTO %s VALUES ('%s', '%s', '%s', '%s');"""
data1 = ("""table1"""","""0""",string1,string2,string3)
cursor1.execute(query1,data1)
génèrent la même erreur.
Comment résoudre ce problème? Peut-être, une fois que les fonctions ont été renvoyées par la fonction, est-il possible de les redéfinir avec des guillemets?
passer les valeurs en tant que paramètres [ 'curseur .execute'] (https://dev.mysql.com/doc/connector-python/en/connector-python-api-mysqlcursor-execute.html) au lieu de les mettre en forme dans votre chaîne. – khelwood
@khelwood J'ai édité la question avec une autre tentative, si c'est ce que vous disiez. Si ce n'est pas le cas, pouvez-vous s'il vous plaît faire un exemple simple? – BowPark
http://pymysql.readthedocs.io/en/latest/user/examples.html – Kendas