Python & MySQL: Unicode dan Pengekodan
Apabila menghuraikan data JSON dan menyimpannya dalam pangkalan data MySQL, anda mungkin menghadapi ralat Unicode jika data mengandungi aksara bukan ASCII. Ralat ini biasanya berlaku kerana pangkalan data atau Python tidak boleh mengekod atau menyahkod data dengan betul. Untuk menyelesaikan isu ini, anda perlu mengubah suai pangkalan data atau pelaksanaan Python untuk memastikan pengekodan dan pengendalian aksara Unikod yang betul.
Mengendalikan Ralat Unikod dari Bahagian Pangkalan Data
Kepada mengendalikan ralat Unicode dari sisi pangkalan data, anda boleh mengubah suai set aksara jadual dan penyusunan untuk menyokong pengekodan Unicode. Dalam kes anda, anda boleh mengubah suai jadual yahoo_questions seperti berikut:
ALTER TABLE yahoo_questions CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
Ini akan menukar set aksara jadual kepada UTF-8 dan penyusunan kepada penyusunan Unikod tidak sensitif huruf besar dan kecil.
Mengendalikan Ralat Unikod dari Bahagian Python
Sebagai alternatif, anda boleh mengendalikan Ralat Unicode dari bahagian Python dengan menyatakan pengekodan secara eksplisit apabila memasukkan data ke dalam pangkalan data. Dalam kod Python anda, ubah suai pernyataan laksana seperti berikut:
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'})
Dengan menambahkan parameter 'charset': 'utf8' pada pernyataan execute, anda secara jelas memberitahu MySQLdb untuk mengekod data menggunakan pengekodan UTF-8 sebelum memasukkannya ke dalam pangkalan data.
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat Unicode Apabila Menggunakan Python dan MySQL dengan Data JSON?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!