gpt4 book ai didi

python - 使用python在sqlite3中存储numpy数组时遇到问题

转载 作者:太空宇宙 更新时间:2023-11-03 17:44:12 25 4
gpt4 key购买 nike

我正在尝试遵循此处显示的最佳答案的示例:Python insert numpy array into sqlite3 database

起初我以为这是我的代码,但我尝试完全复制并粘贴答案代码,但仍然遇到相同的错误:

OSError: Failed to interpret file <_io.BytesIO object at 0x02B87C00> as a pickle

convert_array 函数似乎存在问题,numpy 无法将其识别为已保存的文件(或者可能是 adjustment_array 函数未正确存储它的问题?)。我正在使用 Python 3.4.3.2 和 SQLite 3.8.9。只是好奇是否有人可以确认他们在尝试运行上面链接答案中的代码时遇到了相同的错误,特别是如果有人对如何修复它并使其工作有见解。

最佳答案

unutbu 代码的唯一问题是他的 adapt_array 在 Python 3 中引发异常:

def adapt_array(arr):
out = io.BytesIO()
np.save(out, arr)
out.seek(0)
# http://stackoverflow.com/a/3425465/190597 (R. Hill)
return buffer(out.read())

那是因为buffer 3.x 中不存在。实际上,它在 2.x 中并没有做任何有用的事情,因此您可以将其删除。只需将最后一行替换为:

return out.read()

现在,其他一切都运行良好。

如果您需要与旧版 2.x 和 3.x 兼容(我不确定是否有任何版本与此重叠,但可能有……),您可以改为通过在模块顶部执行此操作来修复它:

try:
buffer
except NameError:
buffer = bytes

关于python - 使用python在sqlite3中存储numpy数组时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30063437/

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