Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将带有二进制UUID的CSV导入MySQL工作台_Python_Mysql_Csv_Mysql Python - Fatal编程技术网

Python 将带有二进制UUID的CSV导入MySQL工作台

Python 将带有二进制UUID的CSV导入MySQL工作台,python,mysql,csv,mysql-python,Python,Mysql,Csv,Mysql Python,我正在尝试将一个包含1000万行UUID的CSV文件(用Python生成)导入MySQL工作台 首先,我使用名为ID的binary(16)列创建了一个MySQL表: CREATE TABLE TT ( ID BINARY(16) PRIMARY KEY); 接下来,我使用uuid库和uuid的二进制版本在Python中创建了一个1000万行的CSV文件: import pandas as pd import uuid ID = [] for i in range(10000000):

我正在尝试将一个包含1000万行UUID的CSV文件(用Python生成)导入MySQL工作台

首先,我使用名为
ID
binary(16)
列创建了一个MySQL表:

CREATE TABLE TT (
ID BINARY(16) PRIMARY KEY);
接下来,我使用
uuid
库和uuid的二进制版本在Python中创建了一个1000万行的CSV文件:

import pandas as pd
import uuid

ID = []

for i in range(10000000):
    ID.append(uuid.uuid4().bytes)

Dict = {'ID':ID}

DF = pd.DataFrame(Dict)

DF.to_csv("Desktop/uuid_table.csv")
设置此选项后,我尝试使用表数据导入向导将CSV文件导入MySQL Workbench,但原始表中没有任何更改。该过程已完成,没有错误,但它显示“已导入0行”


有人能帮我把这个CSV导入MySQL工作台吗?我做错了什么?谢谢。

一个问题是,您的CSV包含二进制数据的python
字节
表示,它不是SQL二进制,也不是长度16。您可以改为编写十六进制表示。由于这是一个单列CSV,并且十六进制字母表中没有需要转义的字符,因此不需要任何像pandas这样的中间字符来修复数据

import uuid

with open("Desktop/uuid_table.csv", "w", newline="") as fileobj:
    fileobj.write("ID\r\n")
    for i in range(10000000):
        fileobj.write(uuid.uuid4().hex + "\r\n")
现在您有了一个没有索引的单列CSV。我不使用MySQL Workbench,但您需要它的等价物

LOAD DATA INFILE 'Desktop/uuid_table.csv' INTO TABLE `TT` (@var1)
SET ID = UNHEX(@var1)

我假设导入向导允许您选择格式。

有人能帮我吗?用什么?我看到了至少3个独立的任务…@Akina嗯,我的主要问题是如何将csv导入MySQL工作台。我做错了什么?在MySQL Workbench中可以这样做吗?非常感谢。如果我想在表中有另一列以及csv,例如
datetime
,该怎么办?在这种情况下,
csv
模块或pandas可能是最佳选择。csv模块的内存效率更高,一次只写一行,但如果您正在处理数据,pandas的功能将更加丰富。我将添加几个示例。