我有一个将用户数据存储到postgres表中的python服务器。我开始在我的数据库中使用SQLite并且没有任何问题,但在转换为postgres后,我遇到了为我的encr_password
存储unicode编码字符串的问题。
CREATEuser
存储此数据:
{'fname': ['John'], 'encr_password': [b'$2b$14$NvAJc1nxSRpQnuK5iAUxyeMN9wobMShjUYxCpANlsYUn8M1qir1Tq'], 'email': ['john@doe.com'], 'lname': ['Doe']}
但是当我从Postgres服务器检索数据时,我收到了:
[{'encr_password': '\\x243262243134244675375137324b4953614c5a70706354355a756d712e77433365576d42554e4f47315a486c43593958353454474248494969726b43', 'fname': 'John', 'user_id': 1, 'email': 'john@doe.com', 'lname': 'Doe'}]
在使用SQLite时,我的检索再次完全返回了我的预期并以其初始形式存储。
答案 0 :(得分:0)
您似乎将base64格式的数据推送到bytea
字段。你不需要这样做。以二进制转义形式提供二进制文件,或以十六进制转义形式提供per the PostgreSQL manual。
如果必须将其编码为base64,请将其存储在text
字段中。或者使用encode
和decode
函数将base64转换为输入和输出的bytea。