Maison >base de données >tutoriel mysql >Voici quelques titres basés sur le texte que vous avez fourni, en gardant à l'esprit le format des questions : * **Comment puis-je gérer les avertissements MySQL en Python ?** (Simple et clair) * **Pourquoi mon code Python ne fonctionne-t-il pas
Dans un script Python, un utilisateur a rencontré des avertissements « Données tronquées pour la colonne 'xxx' » lors une requête MySQL. Cependant, le code ci-dessous n'a pas réussi à capturer ces avertissements.
<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>
Les avertissements dans MySQL ne sont pas générés en tant qu'exceptions comme les erreurs. Au lieu de cela, ils sont signalés à stderr. Pour intercepter et gérer les avertissements, vous pouvez utiliser le module d'avertissements. Voici un extrait de code mis à jour :
<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>
En utilisant warns.filterwarnings('error',category=MySQLdb.Warning), vous demandez à Python de générer des avertissements en tant qu'exceptions, vous permettant de les intercepter dans le try/ sauf bloquer et prendre les mesures appropriées.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!