如何解决属性错误:尝试以彩色打印特定单词时,“ tuple”对象没有属性“ split”
我的程序的目的是从两个Excel文件中获取数据,将它们放在sqltable中,然后对其进行比较,并以“是”或“否”的列表格式输出它们的差异(如果它们包含在其中)任何一张桌子。如果显示否,则该词应为红色,以使差异与其他字符区分开来。
我的程序:
while True:
conf = input("Type yes/no to confirm this is done: ")
if conf == "no":
continue
elif conf == "yes":
cnxn = sqlite3.connect(':memory:')
cursor = cnxn.cursor()
dfs = pd.read_excel('ANZPrevIoUs.xlsx',sheet_name=None)
for table,df in dfs.items():
df.to_sql(table,cnxn,if_exists='append',index=False)
dfs = pd.read_excel('ANZCurrent.xlsx',index=False)
script2 = ("""
select Acc_no,Customer,(case when max(inPrev) = 1 then 'Yes' else 'No' end) as inPrev,(case when max(inCur) = 1 then 'Yes' else 'No' end) as inCur
FROM( select Acc_no,1 as InPrev,0 as InCur
from ANZPrevIoUs
union all
select Acc_no,1
from ANZCurrent
) t
group by Acc_no,Customer
""")
cursor.execute(script2)
rows = cursor.fetchall()
for row in rows:
row.split()
red = "\033[31m"
green = "\033[32m"
blue = "\033[34m"
reset = "\033[39m"
utterances = row.split()
if "no" in utterances:
idxs = [i for i,x in enumerate(utterances) if x == "No"]
for i in idxs:
utterances[i] = red + utterances[i] + reset
utterances = "".join(utterances)
print(utterances)
cnxn.commit()
break
else:
print("please enter either yes or no")
os.system('pause')
执行程序时出现此错误:
Attribute Error: 'tuple' object has no attribute 'split'
这是我的第一个python程序,如果有任何建议,我将不胜感激(无论它是否解决了我的问题)。谢谢。
解决方法
从错误
属性错误:“列表”对象没有属性“拆分”
# your row type is list
row.split()
utterances = row.split()
您可以先将列表转换为字符串。 str(row)
或"".join(row)
请注意,split仅适用于字符串。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。