Postgres NOTIFY仅支持字符串文字(无二进制数据)。我设法通过以下方式将它与腌制对象一起使用:
message = cPickle.dumps(objectFoo)
cursor = connection.cursor() # this is psycopg2 connection
cursor.execute("NOTIFY channelFoo, %s", [message])
但是,如果我在编码对象中放入了一些棘手的字节(例如 '\x80' 字符串)。从以下位置返回错误execute()
:
psycopg2.DataError:用于编码“UTF8”的无效字节序列:0x80
有没有解决的办法?一种允许可靠地将腌制对象序列化为 Postgres 字符串的方法,无论对象包含什么数据?