In einem Python-Skript ist ein Benutzer auf die Warnung „Daten für Spalte ‚xxx‘ abgeschnitten“ gestoßen eine MySQL-Abfrage. Der folgende Code konnte diese Warnungen jedoch nicht erfassen.
<code class="python">import MySQLdb try: cursor.execute(some_statement) # code steps always here: No Warning is trapped # by the code below except MySQLdb.Warning, e: # handle warnings, if the cursor you're using raises them except Warning, e: # handle warnings, if the cursor you're using raises them</code>
Warnungen in MySQL werden nicht als Ausnahmen wie Fehler ausgelöst. Stattdessen werden sie an stderr gemeldet. Um Warnungen abzufangen und zu verarbeiten, können Sie das Warnungsmodul verwenden. Hier ist ein aktualisierter Codeausschnitt:
<code class="python">import warnings import MySQLdb # Configure warnings to be turned into exceptions warnings.filterwarnings('error', category=MySQLdb.Warning) # Execute the query and handle the warnings try: cursor.execute(some_statement) except MySQLdb.Warning: # Handle the warning as an exception except Exception: # Handle other exceptions</code>
Durch die Verwendung von warnings.filterwarnings('error', Category=MySQLdb.Warning) weisen Sie Python an, Warnungen als Ausnahmen auszulösen, sodass Sie sie im try/ abfangen können. außer blockieren und entsprechende Maßnahmen ergreifen.
Das obige ist der detaillierte Inhalt vonHier sind einige Titel, die auf Ihrem bereitgestellten Text basieren und dabei das Fragenformat berücksichtigen: * **Wie kann ich mit MySQL-Warnungen in Python umgehen?** (Einfach und klar) * **Warum funktioniert mein Python-Code nicht?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!