gpt4 book ai didi

python - 使用 pickle 在 postgres 表中保存 python 对象

转载 作者:行者123 更新时间:2023-11-29 12:01:33 26 4
gpt4 key购买 nike

我有一个创建一些对象的 python 脚本。我希望能够将这些对象保存到我的 postgres 数据库中以备后用。

我的想法是我可以 pickle 一个对象,然后将它存储在数据库的一个字段中。但我正在绕圈子讨论如何存储、检索和使用数据。

我已经尝试将 pickle 二进制字符串存储为 text 但我不知道如何对其进行编码/转义。然后如何将字符串作为二进制字符串加载以进行 unpickle。

我已经尝试将数据存储为 bytea 并使用 psycopg2.Binary(data) 和不使用。然后读入缓冲区并使用 base64.b64encode(result) 进行编码,但结果不一样,无法解封。

有没有一种简单的方法可以在 SQL (postgres) 数据库中存储和检索 python 对象?

最佳答案

根据@SergioPulgarin 的评论,我尝试了以下有效的方法!

注意@Tomalak 发表评论后编辑 2

存储:

  1. 将对象 pickle 为二进制字符串

    pickle_string = pickle.dumps(object)

  2. 将 pickle 字符串存储在 postgres 的 bytea(二进制)字段中。在 Psycopg2 中使用简单的 INSERT 查询

检索:

  1. 选择 Psycopg2 中的字段。 (简单的 SELECT 查询)

  2. 解压解码结果

    retrieved_pickle_string = pickle.loads(decoded_result)

希望能帮助任何试图做类似事情的人!

关于python - 使用 pickle 在 postgres 表中保存 python 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57642165/

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