Python Pyodbc二进制列返回的是\xda\x08\xcd\x08\xba\x08而不是数字
我有一个SQL数据库,它显示一个varbinary(max),如下0x94069206691068f。。。我想将其导入python pycharm,以获得相同类型的数据。 然而,它显示了类似的内容 [b'\x94\x06\x92\x06\x91\x06\x8f\x06\x8d。。 如何将相同的数字复制到python?我是python初学者,请帮助 我从上一篇文章中复制了代码,但它不起作用Python Pyodbc二进制列返回的是\xda\x08\xcd\x08\xba\x08而不是数字,python,sql,type-conversion,pyodbc,varbinary,Python,Sql,Type Conversion,Pyodbc,Varbinary,我有一个SQL数据库,它显示一个varbinary(max),如下0x94069206691068f。。。我想将其导入python pycharm,以获得相同类型的数据。 然而,它显示了类似的内容 [b'\x94\x06\x92\x06\x91\x06\x8f\x06\x8d。。 如何将相同的数字复制到python?我是python初学者,请帮助 我从上一篇文章中复制了代码,但它不起作用 import pyodbc def hexToString(binaryString):
import pyodbc
def hexToString(binaryString):
try:
hashString = ["{0:0>2}".format(hex(b)[2:].upper()) for b in binaryString]
return '0x' + "".join(hashString)
except:
return binaryString
query = """ select P from Access.table """
conn_str = (
**** private database details # I don't copy on the page
)
cnxn = pyodbc.connect(conn_str)
cnxn.add_output_converter(pyodbc.SQL_BINARY, hexToString)
cursor = cnxn.cursor()
try:
cursor.execute(query)
row = cursor.fetchone()
except MySQLdb.error as err:
print(err)
else:
while row is not None:
print(row)
row = cursor.fetchone()
如果列返回类型为
varbinary(max)
,则需要添加输出转换器函数来处理SQL\u varbinary
,而不是SQL\u BINARY
cnxn.add_output_converter(pyodbc.SQL_VARBINARY, converter_function_name)
还有,如果你能帮忙的话,如果我想转换成浮点数,最好是用十六进制字节或varbinary(max)?@RCan-我不知道你的意思。拿一个
varbinary
-类似的列,把它解释为float
(或类似的)?无论如何,这都是一个错误。