Maison >base de données >tutoriel mysql >Comment résoudre les erreurs Unicode lors de l'utilisation de Python et MySQL avec des données JSON ?

Comment résoudre les erreurs Unicode lors de l'utilisation de Python et MySQL avec des données JSON ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-07 04:58:20934parcourir

How to Resolve Unicode Errors When Using Python and MySQL with JSON Data?

Python et MySQL : Unicode et encodage

Lors de l'analyse des données JSON et de leur stockage dans une base de données MySQL, vous pouvez rencontrer des erreurs Unicode si le les données contiennent des caractères non-ASCII. Cette erreur se produit généralement parce que la base de données ou Python ne peuvent pas encoder ou décoder correctement les données. Pour résoudre ce problème, vous devez modifier la base de données ou l'implémentation Python pour garantir un encodage et une gestion appropriés des caractères Unicode.

Gestion des erreurs Unicode du côté de la base de données

Pour gérer les erreurs Unicode du côté de la base de données, vous pouvez modifier le jeu de caractères et le classement de la table pour prendre en charge le codage Unicode. Dans votre cas, vous pouvez modifier la table yahoo_questions comme suit :

ALTER TABLE yahoo_questions CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Cela changera le jeu de caractères de la table en UTF-8 et le classement en classement Unicode insensible à la casse.

Gestion des erreurs Unicode du côté Python

Vous pouvez également gérer les erreurs Unicode du côté Python en spécifiant explicitement le codage lors de l'insertion des données dans la base de données. Dans votre code Python, modifiez l'instruction d'exécution comme suit :

cur.execute("INSERT INTO yahoo_questions (question_id, question_subj, question_content, question_userId, question_timestamp,"
            +"category_id, category_name, choosen_answer, choosen_userId, choosen_usernick, choosen_ans_timestamp)"
            +"VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)", (row[2], row[5], row[6], quserId, questionTime, categoryId, categoryName, qChosenAnswer, choosenUserId, choosenNickName, choosenTimeStamp), {'charset': 'utf8'})

En ajoutant le paramètre 'charset': 'utf8' à l'instruction d'exécution, vous dites explicitement à MySQLdb d'encoder les données en utilisant l'encodage UTF-8. avant de l'insérer dans la base de donné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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn