从cursor.fetchall()的结果中删除u

2024-10-01 17:26:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用python2.7和jaydebeapiinformix jdbc driver (ifxjdbc.jar)对一个表执行select,所有字段都有u'some_text' 这是我的密码

curs = conn.cursor()
curs.execute("SELECT * FROM table1")
res = curs.fetchall()
print res

使用

^{pr2}$

正确转换结果中的第一行。你知道如何转换所有选中的行吗?我对sqlite3也有同样的问题,但是添加

conn.text_factory=str 

解决了我的问题。我找不到对jaydebeapi.起相同作用的东西


Tags: text密码executedriverressomeconnselect
1条回答
网友
1楼 · 发布于 2024-10-01 17:26:02

如果您确实需要将Unicode值编码为bytestrings,请尽可能晚地将Unicode值编码为bytestrings,例如,将值推送到只能处理字节的位置时,例如文件或网络套接字。在

可以使用嵌套列表理解对所有行中的所有列进行编码:

res = [col.encode('utf8') if isinstance(col, unicode) else col for col in row]
       for row in curs.fetchall()]

它只对实际是Unicode字符串的值进行编码,其方式可以处理所有Unicode码位。在

如果您所关心的只是u''前缀,那么绝对不需要进行编码。不要将容器表示中的类型指示符与实际数据混淆。在

相关问题 更多 >

    热门问题