繁体   English   中英

如何在Python中使用Psycopg2将空字符写入bytea列

[英]How to write null characters to a bytea column using psycopg2 in Python

我正在尝试将二进制数据写入PostgreSQL表的bytea列中。 我的数据包含空字符,并且出现以下错误。

ValueError: A string literal cannot contain NUL (0x00) characters.

这是我的代码。

import numpy as np
fft = [0.0, 0.2, 0.0215]
[float(i) for i in fft]
blob = struct.pack('%sd' % np.size(fft), *fft)
cur.execute("""INSERT INTO fft (id, v) VALUES(%s, %s)""", ("widget_fft", blob))

idtext类型, vbytea类型。

我也尝试过使用psycopg.Binary(blob) ,但是它会插入不需要的反斜杠。

在Python 2.7中,您必须使用psycopg2.Binary包装器:

cur.execute("""INSERT INTO fft (id, v) VALUES(%s, %s)""",
            ("widget_fft", psycopg2.Binary(blob)))

有关详细信息,请参见文档

在Python 3中这不是必需的。

我尝试过,没有看到任何反斜线。 你能显示出blob到底是什么吗?

暂无
暂无

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

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