Python将字符串保存为来自bytea的postgres

时间:2017-01-20 08:55:05

标签: python postgresql python-3.x

我是一个pythonic用户。现在,我在将“字符串”恢复到postgres时遇到了麻烦。这是我的代码的一部分:

dataRecv = '3231334744323031363030313831340000000000'
device_id = bytearray.fromhex(dataRecv[0:(len(dataRecv)-10)]).decode()

我得到了:

device_id = '213GD2016001813'

就像我想要的那样。

但后来我想用pyscopg2保存到postgresql:

execute("INSERT INTO table (column) VALUES (device_id)")
commit()

其中“列”数据类型为char(20)。 我得到的错误在这里:

syntax error at or near "GD2016001813"
213GD20160018...
   ^

我已经尝试使用 str(device_id) 将字符串转换为device_id,并在设备ID的开头和结尾添加撇号('),因此它将如下所示:{{ 1}}。但结果仍然相同,这部分是错误的:

VALUES ('device_id')

或这部分:

213GD20160018...
   ^
你能帮助我吗?三江源

1 个答案:

答案 0 :(得分:0)

1)转换为字符串https://www.postgresql.org/docs/9.3/static/functions-formatting.html 2)检查列的格式可能只需要数字