从CX Oracle resultset读取数据的Python代码,不应将非英语字符转换为字符串

从CX Oracle resultset读取数据的Python代码,不应将非英语字符转换为字符串,python,cx-oracle,Python,Cx Oracle,以下是我试图做的: 我正在从cx\u Oracle读取结果集,并使用python将其转换为json格式 所以我的问题是,有一些非英语字符正在转换为字符串,并将其转换为英语字符(例如,在我的例子中,“Luís”转换为“Luis”)。有人能帮我解决这个问题吗 下面是转换为json字典的代码片段 def __execute_select(sql, cursor, **kwargs): cursor.execute(sql, **kwargs) columns = [i[0] for

以下是我试图做的:

我正在从
cx\u Oracle
读取结果集,并使用python将其转换为json格式

所以我的问题是,有一些非英语字符正在转换为字符串,并将其转换为英语字符(例如,在我的例子中,“Luís”转换为“Luis”)。有人能帮我解决这个问题吗

下面是转换为json字典的代码片段

def __execute_select(sql, cursor, **kwargs):

    cursor.execute(sql, **kwargs)
    columns = [i[0] for i in cursor.description]
    return [dict(zip(columns, row)) for row in cursor.fetchall()]

确保将NLS_LANG设置为支持要检索的字符的字符集。如果这不是问题,请提供SQL*Plus的输出和Python的等效输出以及使用的各种字符集。

是的,我玩了一些
NLS\u Lang
,我发现这个
os.environ[“NLS\u Lang”]=”.AL32UTF8“
对我有效,然后我尝试用
utf-8
进行解码,因此它有效