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 程式碼中,如下修改執行語句:
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'})
透過在執行語句中加入'charset': 'utf8' 參數,您明確告訴MySQLdb 使用UTF-8 編碼對資料進行編碼在將其插入資料庫之前。
以上是使用 Python 和 MySQL 處理 JSON 資料時如何解決 Unicode 錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!