我有一个创建某些对象的python脚本。 我希望能够将这些对象保存到我的postgres数据库中,以备后用。
我的想法是我可以腌制一个对象,然后将其存储在数据库中的字段中。 但是我会绕一圈,讨论如何存储,检索和使用数据。
我尝试将泡菜二进制字符串存储为text
,但是我不知道如何编码/转义它。然后如何将字符串作为二进制字符串加载以进行修复。
我尝试使用bytea
和不使用psycopg2.Binary(data)
来存储数据。
然后读入缓冲区并使用base64.b64encode(result)
进行编码,但结果不一样,无法解开。
有没有一种简单的方法可以在SQL(postgres)数据库中存储和检索python对象?
答案 0 :(得分:3)
在@SergioPulgarin发表评论之后,我尝试了以下有效的方法!
N.B Edit2 @Tomalak发表评论
存储:
将对象固定为二进制字符串
pickle_string = pickle.dumps(object)
将泡菜字符串存储在postgres中的bytea(二进制)字段中。在Psycopg2中使用简单的INSERT
查询
检索:
Select
在Psycopg2中的字段。 (简单的SELECT
查询)
解开解码结果
retrieved_pickle_string = pickle.loads(decoded_result)
希望可以帮助任何尝试做类似事情的人!