读取sqlite3.Binary对象numpy.genfromtx

2024-04-20 07:48:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个文本文件,其中包含一个大字符串,它最初是SQL列中的二进制blob。我想使用numpy.genfromtxt读取数据,并将文本转换为1D numpy数组,然后转换为二进制blob,以便稍后使用converters参数导入到SQL中:

       np.genfromtxt(data, delimiter='\t',
              dtype = [ ("a", 'f8'), ("b", 'U100'), ("c", 'f8') ],
              converters = {1: lambda x: sqlite3.Binary(
                     np.fromstring(x, dtype='f4', sep=' '))})

输入文件应该是这样的:

1.0\t1.0 2.0 3.0\t1.0

但是,这会显示错误消息:

^{pr2}$

我希望genfromtxt返回一个数组,其中第一列和第三列将包含浮点值,第二列包含sqlite3.Binary blob数据和1D numpy数组。在

这不起作用,所以我将数据读入genfromtxt输出中的一个大字符串中,然后在将数据写入数据库之前对其进行处理。是否可以在numpy数组中包含sqlite3.Binary对象?在


Tags: 数据字符串numpysqlnp二进制数组sqlite3