比较 SQL 结果和 xlsx 文件中的数据

Comparing SQL Result and data from xlsx file

提问人:Smith 提问时间:10/26/2023 最后编辑:Smith 更新时间:10/26/2023 访问量:52

问:

我正在尝试比较 excel 文件中的数据和 SQL 查询的结果,当我尝试打印结果时,它们是相同的,但是当我使用 For 和 If 时,它显示数据不相同。

下面是我正在使用的代码。

xlsx = pd.read_excel(r'SrcExcelFile.xlsx')
out = xlsx.to_numpy().tolist()
out1 = [tuple(elt) for elt in out]

conn_str = (r'connection')
cnxn = pyodbc.connect(conn_str)
with open(r'Target_1.sql') as Q1:
ReadTargetFile2 = Q1.read()
cursor = cnxn.cursor()
SQL_QUERY = cursor.execute(ReadTargetFile2)
sqlResult = cursor.fetchall()

print(out1)
print(sqlResult)

print(type(out1))
print(type(sqlResult))

for rctest in sqlResult :
 if rctest in out1:
  print('%s is in SRC' % rctest[0])
 else:
  print('%s is not in SRC' % rctest[0])
exit()


Result
[('Test1', 'Y'), ('Test2', 'Y'), ('Test3', 'Y')]
[('Test1', 'Y'), ('Test2', 'Y'), ('Test3', 'Y')]

<class 'list'>
<class 'list'>

Test1 is not in SRC
Test2 is not in SRC
Test3 is not in SRC`

我期待结果会匹配

python sql-server excel

评论

2赞 JNevill 10/26/2023
请修复代码中的缩进。目前尚不清楚代码块的终点在哪里。
0赞 siggemannen 10/26/2023
Else 与 for 处于同一级别。虽然,即使解决了这个问题,我也无法重现您的问题。我猜元组不是真正的元组,或者两个不同列表之间的数据类型还有其他事情发生。您可以打印 element 类,看看是否有奇怪的东西
0赞 Smith 10/26/2023
对于缩进,我深表歉意,我编辑了代码并包含 xlsx 和 sqlResult 的类
0赞 Matthias Schmidt 10/26/2023
您是否在 pd.read() 上尝试过不同的编码?
0赞 Smith 10/26/2023
还不是我是python的新手,对不起,非常感谢所有的建议,谢谢,但我也尝试搜索和测试我能找到的所有不同编码。谢谢

答: 暂无答案