cx\u Oracle返回带有HTML实体的varchar列

2024-04-19 02:57:47 发布

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

当使用cx\u Oracle查询数据库时,我有一个存储文本的列varchar2。出于某种原因,如果我有“<;”或“>;”或类似于存储在表中的字符,那么当我查询表时,它会将这些值替换为它们的HTML实体等价物(例如:“<;”变为“&;lt;”)。例如:

如果我的表中有以下数据:

ID  | VARCHAR2_DATA
----|-----------------
1   | <span>hi1</span>
2   | <span>hi2</span>

然后我运行以下代码:

import cx_Oracle
conn = cx_Oracle.connect(DATABASE_CONNECTION_STRING)
cursor = conn.cursor()
cursor.execute("SELECT * FROM TABLE")
ret_data = cursor.fetchall()

ret\ U数据将包含:

[1, "&lt;span&gt;hi1&lt;/span&gt;"],
[2, "&lt;span&gt;hi2&lt;/span&gt;"]

为什么会这样?除了遍历每一列/行并执行查找/替换之外,我如何才能阻止它发生?你知道吗


Tags: 数据文本ltgtconn字符cursororacle
1条回答
网友
1楼 · 发布于 2024-04-19 02:57:47

为了做到这一点,您必须在cx\u Oracle和您的代码之间有某种代码。当返回数据时,cx\u Oracle返回元组,而不是列表。如下所示:

[(1, '<span>hi1</span>'), (2, '<span>hi2</span>')]

尝试在命令提示符下使用python,而不导入任何其他模块。您可以使用命令检查要导入的模块

python -v

相关问题 更多 >