[英]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.