如何使用Python的LOAD DATA INFILE命令将UTF-8编码的数据导入MySQL表?

Susan Sarandon
发布: 2024-10-30 05:27:28
原创
918 人浏览过

How to Import UTF-8 Encoded Data into a MySQL Table Using Python's LOAD DATA INFILE Command?

将 UTF-8 编码数据导入 MySQL 表

将包含非英文字符的大型 CSV 文件导入 MySQL 表时,必须正确处理 UTF-8 编码以防止字符损坏。

要使用 Python 的 LOAD DATA LOCAL INFILE 命令将 UTF-8 编码数据加载到 MySQL 表中,请按照以下步骤操作:

  1. 设置字符集:确保在表创建或更改查询中使用 CHARACTER SET 子句将目标列的字符集显式设置为 UTF8。
  2. 指定 UTF-8 编码: 在 LOAD DATA INFILE 命令中包含 CHARACTER SET UTF8 选项,以明确指示正在导入的数据的 UTF-8 编码。
  3. 设置编码函数(可选): 取决于您的数据的特定编码,您可能需要在执行 LOAD DATA INFILE 命令之前使用 SET NAMES 或 SET CHARACTER SET 语句指定适当的编码函数。
  4. 配置字段和行终止符(可选): 分别使用 FIELDS TERMINATED BY 和 LINES TERMINATED BY 选项定义 CSV 文件中使用的字段和行终止符。

例如,以下 Python 代码演示使用 UTF-8 加载 CSV 文件将编码数据导入 MySQL 表:

<code class="python">import mysql.connector

conn = mysql.connector.connect(
    user='username',
    password='password',
    host='localhost',
    database='database'
)

cursor = conn.cursor()

# Create a table with a UTF-8 character set
query = """
CREATE TABLE IF NOT EXISTS utf8_table (
  id INT AUTO_INCREMENT PRIMARY KEY,
  data VARCHAR(255) CHARACTER SET utf8
);
"""
cursor.execute(query)
conn.commit()

# Load the UTF-8 encoded CSV file
query = """
LOAD DATA INFILE 'utf8_data.csv'
IGNORE INTO TABLE utf8_table
CHARACTER SET UTF8
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
"""
cursor.execute(query)
conn.commit()

cursor.close()
conn.close()</code>
登录后复制

按照以下步骤,您可以成功将 UTF-8 编码数据导入 MySQL 表,同时准确保留非英文字符。

以上是如何使用Python的LOAD DATA INFILE命令将UTF-8编码的数据导入MySQL表?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!