在实际开发中,可能会遇到将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 pdfrom 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编码,以避免中文乱码情况发生。