Python と MySQL: Unicode とエンコーディング
JSON データを解析して MySQL データベースに保存するときに、次の場合に Unicode エラーが発生する可能性があります。データに非 ASCII 文字が含まれています。このエラーは通常、データベースまたは Python がデータを正しくエンコードまたはデコードできないために発生します。この問題を解決するには、データベースまたは Python 実装を変更して、Unicode 文字のエンコードと処理が適切に行われるようにする必要があります。
データベース側からの Unicode エラーの処理
するにはデータベース側から Unicode エラーを処理するには、Unicode エンコードをサポートするようにテーブルの文字セットと照合順序を変更できます。あなたの場合、テーブル yahoo_questions を次のように変更できます:
ALTER TABLE yahoo_questions CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
これにより、テーブルの文字セットが UTF-8 に変更され、照合順序が大文字と小文字を区別しない Unicode 照合順序に変更されます。
Python 側から Unicode エラーを処理する
あるいは、次のこともできます。データベースにデータを挿入するときにエンコーディングを明示的に指定することで、Python 側から Unicode エラーを処理します。 Python コードで、execute ステートメントを次のように変更します。
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'})
execute ステートメントに 'charset': 'utf8' パラメータを追加することで、UTF-8 エンコーディングを使用してデータをエンコードするように MySQLdb に明示的に指示します。データベースに挿入する前に。
以上がJSON データで Python と MySQL を使用するときに Unicode エラーを解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。