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 ?
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!