繁体   English   中英

在 Python 中反序列化 postgres bytea

[英]Deserialize postgres bytea in Python

我正在尝试读取存储为 bytea 的 postgres 表中的列。

遵循此处概述的方法( 如何使用 psycopg2 读取和插入 bytea 列?

我正在尝试将 memoryview 转换为“真实”值。 但是,这会返回以下错误消息:

c = db.cursor()
c.execute("""select bytea_column from table
where bytearray_id_ = 'abc123';""")
mview = c.fetchone()

TypeError: 'memoryview' object cannot be interpreted as an integer

我还尝试将值读入 Pandas 数据帧,然后尝试反序列化在那里接收到的值。 然而,这只是返回一个系列,似乎用它做不了多少。

dataframe = pd.read_sql_query(bytea_query, db_string)

dataframe["bytea"]
0    [b'\xac', b'\xed', b'\x00', b'\x05', b's', b'r...

有没有其他方法可以做到这一点?

解决方案最终变得相对简单:

data = dataframe["bytes_"][0]
bytearray = bytearray(data)
bytearray

这将返回一个包含来自 postgres 的正确反序列化数据的 bytearray 对象。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM