在實際開發中,可能會遇到將Excel中的數據導入到MySQL中,但是在導入的過程中可能會遇到中文亂碼的問題。
這種情況很可能是由于MySQL默認編碼為latin1,而Excel中的編碼可能是UTF-8或者GBK,所以在導入時需要進行字符集轉換。
# 創建數據庫 CREATE DATABASE test CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; # 創建數據表 CREATE TABLE `test`.`students` ( `id` INT NOT NULL AUTO_INCREMENT, `name` VARCHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, `age` INT NOT NULL, PRIMARY KEY (`id`) ) ENGINE = InnoDB CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; # 修改數據表編碼 ALTER TABLE `test`.`students` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
以上是在MySQL中創建數據庫和數據表,以及修改表的編碼的操作。接下來在導入數據時,使用Python中的pandas庫來處理Excel數據。
import pandas as pd from sqlalchemy import create_engine # 連接MySQL數據庫 engine = create_engine('mysql+pymysql://username:password@host:port/database') # 讀取Excel中的數據 df = pd.read_excel('data.xlsx') # 將DataFrame中的數據存入MySQL數據庫中 df.to_sql('students', con=engine, if_exists='replace', index=False)
在讀取Excel數據時,可以使用pandas庫的read_excel方法將數據讀取為DataFrame,然后使用DataFrame的to_sql方法將數據存入MySQL數據庫中。
在連接MySQL數據庫時,需要根據實際情況修改連接信息,在導入Excel數據時,需要注意將數據編碼轉換為utf-8或者utf8mb4編碼,以避免中文亂碼情況發生。