% aus MySQL-Abfragen in Python maskieren
Die Verwendung des %-Zeichens in MySQL-Abfragen kann zu Ausnahmen führen, wenn es nicht ordnungsgemäß maskiert wird. Beispielsweise löst die folgende Abfrage:
query = """SELECT DATE_FORMAT(date_time,'%Y-%m') AS dd FROM some_table WHERE some_col = %s AND other_col = %s;""" cur.execute(query, (pram1, pram2))
die Ausnahme „ValueError: nicht unterstütztes Formatzeichen ‚Y‘“ aus, da mysqldb % als Formatbezeichner interpretiert.
Um dieses Problem zu beheben , literal escaping wird in der mysqldb-Dokumentation empfohlen. Dies beinhaltet die Verdoppelung der %-Zeichen in der Abfragezeichenfolge:
query = """SELECT DATE_FORMAT(date_time,'%%Y-%%m') AS dd FROM some_table WHERE some_col = %s AND other_col = %s;""" cur.execute(query, (pram1, pram2))
Dadurch wird verhindert, dass mysqldb die %-Zeichen als Formatbezeichner interpretiert, sodass die Abfrage erfolgreich ausgeführt werden kann.
Das obige ist der detaillierte Inhalt vonWie kann ich das %-Zeichen in MySQL-Abfragen mit Python maskieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!