我正在使用sqlAlchemy与postgres数据库交互。所有这些都设置为插入字符串数据。我收到的数据通常是utf-8,而且设置工作得很好。最近,作为边缘情况,数据以somedata\xtrailingdata
的格式出现。在
SQLAlchemy正试图用somedata
创建这个条目,完全去掉\x
之后的所有内容。在
你能告诉我是否有一种方法可以指导SQLAlchemy只尝试插入全部内容而不是删除unicode部分。在
我试过了
create_engine(dbUri, convert_unicode=True, client_encoding='utf8')
create_engine(dbUri, convert_unicode=False, client_encoding='utf8')
create_engine(dbUri, convert_unicode=False)
到目前为止还没有成功。我真的很感谢您在将这些数据插入到字符串列中的输入。在
PS:无法修改DB的列类型。这是一个非常边缘化的案例,不是一般情况。在
它没有Unicode。
\x
是字节文字前缀,后面需要一个十六进制值。PostgreSQL还支持\x
语法,因此可能是PostgreSQL放弃了它。在考虑转义所有斜杠或在
\x
上找到replace,然后再交给SQLAlchemy问题是
\x00
。当传递给SQLAlchemy一个带有\x00
的a值时,它将其截断为\x00
前面的数据。我们将问题追溯到SQLAlchemy下的C库。在相关问题 更多 >
编程相关推荐