我试图清理一个本质上是我使用SQLAlchemy从teradatadb中提取的表定义的列表。我实际上是在尝试替换字符串中的\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'
列表中包含的项是一个元组。你知道吗
如果打印结果[0],您将得到:
现在你已经说过你已经把它变成了一个字符串,我假设你是通过str(results[I])实现的。这将产生:
当它被转换成一个字符串时,Python希望确保“\r”实际上会被打印出来,而不是转义序列“\r”的含义,转义序列是一个回车符。为了做到这一点,添加了另一个反斜杠,给出了转义序列“\\”,字面上表示单个“\”
所以要删除这个“\\r”字符,您需要正确地识别它。你知道吗
你的代码有一个简单的补丁可以让它正常工作。我很确定你只是在代码中误用了
.replace()
函数。以下是正确的代码:相关问题 更多 >
编程相关推荐