Python Pyodbc二进制列返回的是\xda\x08\xcd\x08\xba\x08而不是数字

2024-10-01 00:15:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个SQL数据库,它显示一个varbinary(max),比如0x9406920691068F。。。我想将其导入python pycharm以获得相同类型的数据。 但是,它显示了类似的内容 [b'\x94\x06\x92\x06\x91\x06\x8f\x06\x8d。。 如何将相同的数字复制到python中?我是python的初学者,请帮忙。你知道吗

我从上一篇文章中复制了代码,但没有成功

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()

Tags: sqlreturnconnquerycursorrowtrypyodbc
1条回答
网友
1楼 · 发布于 2024-10-01 00:15:18

如果列返回类型是varbinary(max),那么需要添加输出转换器函数来处理SQL_VARBINARY,而不是SQL_BINARY

cnxn.add_output_converter(pyodbc.SQL_VARBINARY, converter_function_name)

相关问题 更多 >