【发布时间】:2020-11-18 04:19:00
【问题描述】:
我想使用 python 将 zip 文件存储在 postgres 数据库中。
看起来这应该很容易,但我无法解决。
这是我尝试过的 - 我的问题是如何将 zipfile 转换为 bytea 对象。
from zipfile import ZipFile
from io import BytesIO, StringIO
filename = "test.zip"
with ZipFile(filename, 'w') as zip_archive:
binary_stream = BytesIO(zip_archive)
def store_blob(filename, blob):
with db.engine.connect() as connection:
res = connection.execute('''INSERT INTO test (filename, model_file) VALUES (%s, %s)''', (filename, blob ))
store_blob(filename, binary_stream)
【问题讨论】:
-
为什么要打开文件进行写入?
-
正在尝试转换为 bytea - 有没有办法在不打开它的情况下做到这一点?
-
文件
test.zip是否已经存在? -
是的,我只需要将它从磁盘获取到数据库
-
您观察到的实际错误是什么?如果您添加错误消息或堆栈跟踪,则有更多机会正确诊断问题。
标签: python postgresql sqlalchemy bytea