【发布时间】:2019-10-01 21:46:32
【问题描述】:
我正在尝试清理一个列表,该列表本质上是我使用 SQLAlchemy 从 Teradata DB 中提取的表定义。我实际上是在尝试替换字符串中的 \r 字符
我尝试在 for 循环中使用 replace 函数,如下所示
import teradata
import sqlalchemy
import string
eng = sqlalchemy.create_engine('teradatasql:///?user=xxxx&
# execute sql
query = 'SHOW TABLE DBADMIN_BKP.LIKP_BKP'
result = eng.execute(query)
results = result.fetchall()
results = [items.replace("\n", "") for items in results]
print (results)
Traceback (most recent call last):
File "SQL_ALCHEMY.py", line 12, in <module>
results = [items.str_replace("\n", "") for items in results]
File "SQL_ALCHEMY.py", line 12, in <listcomp>
results = [items.str_replace("\n", "") for items in results]
AttributeError: Could not locate column in row for column 'replace'
【问题讨论】:
-
你确定
items是一个字符串吗?我建议检查results的元素实际上是什么。 -
你能发一些
items来确定你在做什么吗? -
这是分配给变量的数据示例:[("CREATE MULTISET TABLE DBADMIN_BKP.LIKP_BKP ,NO FALLBACK ,\r NO BEFORE JOURNAL,\r NO AFTER JOURNAL,\r CHECKSUM = DEFAULT,\r DEFAULT ME ... (12819 个字符被截断) ... HARACTER SET UNICODE CASESPECIFIC NOT NULL,\r FSH_VAS_CG CHAR(3) CHARACTER SET UNICODE CASESPECIFIC NOT NULL, \rPRIMARY KEY ( MANDT ,VBELN ))\r; ",)]
-
以上数据为打印结果(results)
-
我现在已经设法将列表转换为字符串,现在我正在尝试像这样使用替换函数: results = results.replace('\r', '') 代码没有通过错误但可怕的 \r 仍然存在:(
标签: python string sqlalchemy teradata str-replace