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
Libérer: 2024-12-07 04:58:20
original
957 Les gens l'ont consulté

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;
Copier après la connexion

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'})
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal