【发布时间】:2019-12-29 17:10:49
【问题描述】:
我有一个创建一些对象的 python 脚本。 我希望能够将这些对象保存到我的 postgres 数据库中以供以后使用。
我的想法是我可以腌制一个对象,然后将其存储在数据库中的一个字段中。 但是关于如何存储、检索和使用数据,我正在兜圈子。
我尝试将 pickle 二进制字符串存储为 text,但我不知道如何对其进行编码/转义。那么如何将字符串作为二进制字符串加载到unpickle。
我尝试将数据存储为bytea,无论是否使用psycopg2.Binary(data)。
然后读入缓冲区并使用base64.b64encode(result) 进行编码,但结果不一样,不能解开。
有没有一种简单的方法可以在 SQL (postgres) 数据库中存储和检索 python 对象?
【问题讨论】:
-
您确定以正确的顺序调用
base64函数吗?只是检查一下,你想要的是:存储object->pickle->base64-encode->DB。回读:DB->base64-decode->unpickle->object。 -
我认为这个答案会对你有所帮助。 stackoverflow.com/questions/30469575/…
-
@SergioPulgarin 在发送到数据库之前我没有编码。如果我这样做,我应该将它作为文本或二进制存储在数据库中吗?
标签: python postgresql pickle