gpt4 book ai didi

python - 如何连接 blob?

转载 作者:太空宇宙 更新时间:2023-11-03 14:55:34 24 4
gpt4 key购买 nike

当使用 GROUP BY 时,有没有办法聚合 SQLite 中两条记录的 BLOB(二进制)。

已经尝试过但没有成功:

1) SQLite 文档中的 GROUP_CONCAT 函数,但它不适用于 BLOB 数据类型,即使 2 个 BLOB 大于该值,它也仅返回 1 个字节。

 SELECT id, GROUP_CONCAT(blob_col)
FROM table
GROUP BY id

2)通过Python Sqlite3“create_aggregate”函数定义自己的SQL函数

import sqlite3

class BlobConcat:

def __init__(self):
self.count = buffer("")

def step(self, value):
print str(value)
self.count += value[:]

def finalize(self):
return self.count

con = sqlite3.connect(dbPath)

con.create_aggregate("BLOB_CONCAT", 1, BlobConcat)

sql = """SELECT id, BLOB_CONCAT(blob_col)
FROM table
GROUP BY id"""

也仅返回 1 个字节。

最佳答案

SQLite 没有内置机制来连接 blob。

可以编写一个用户定义的函数(聚合或非聚合)来执行此操作。您的类的问题在于 return self.count 返回一个 str 对象,该对象被解释为字符串,而不是 blob。您必须显式地将其转换为缓冲区:

class BlobConcat:
...
def finalize(self):
return buffer(self.count)

关于python - 如何连接 blob?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45610054/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com