我们的旧sql遗留代码之一,使用HASHBYTES函数和sha2_256转换sql中的数字列
整个过程都在向python迁移,因为我们在遗留工作的基础上添加了一些高级用法。然而,当使用连接器时,我们调用的是相同的sql代码,HASHBYTES('sha2_256',column_name)id返回的值包含大量垃圾
在sql中运行代码会导致以下情况
Column Encoded_Column
101286297 0x7AC82B2779116F40A8CEA0D85BE4AA02AF7F813B5383BAC60D5E71B7BDB9F705
从python运行相同的sql查询会导致
Column Encoded_Column
101286297
b“z\xc8+'y\x11o@\xa8\xce\xa0\xd8[\xe4\xaa\x02\xaf\x7f\x81;S\x83\xba\xc6\r^q\xb7\xbd\xb9\xf7\x05”
代码是
Select Column,HASHBYTES('SHA2_256', CONVERT(VARBINARY(8),Column)) as Encoded_Column from table
我尝试过通常的垃圾清理,但没有帮助
您得到了正确的结果,但显示为原始字节(这就是为什么在
b"..."
中有b)查看SQL的结果,您可以使用十六进制编码数据
因此,要转换python结果,可以执行以下操作:
结果将是:
这就是SQL中的内容
您可以在SQL结果的开头阅读有关here的更多信息,python代码中没有该结果
最后,如果使用pandas,可以使用以下命令转换整个列:
相关问题 更多 >
编程相关推荐