从 SQL Server 查询 Python 中的二进制值

2024-04-17

我正在执行这个查询

SELECT CMDB_ID FROM DB1.[dbo].[CDMID]

当我在 SSMS 18 上执行此操作时,我得到以下信息:

我知道这些是十六进制值,尽管我不是该主题的专家。

我需要在 python 上执行这个精确的查询,以便我可以通过脚本处理该信息,该脚本需要输入十六进制值而不进行任何操作(如您在 SSMS 输出中看到的那样)。

所以,通过pyodbc具有常规连接的库:

SQLserver_Connection("Driver={SQL Server Native Client 11.0};"
                     "Server=INSTANCE;"
                     "Database=DB1;"
                     "UID=USER;"
                     "PWD=PASS;")

我明白了:

0   b'@\x12\x90\xb2\xbb\x92\xbbe\xa3\xf9:\xe2\x97@...
1   b'@"\xaf\x13\x18\xc9}\xc6\xb0\xd4\x87\xbf\x9e\...
2   b'@G\xc5rLh5\x1c\xb8h\xe0\xf0\xe4t\x08\xbb'
3   b'@\x9f\xe65\xf8tR\xda\x85S\xdcu\xd3\xf6*\xa2'
4   b'@\xa4\xcb^T\x06\xb2\xd0\x91S\x9e\xc0\xa7\xe543'
... ...
122 b'O\xa6\xe1\xd8\tA\xe9E\xa0\xf7\x96\x7f!"\xa3\...
123 b'O\xa9j,\x02\x89pF\xb9\xb4:G]y\xc4\xb6'
124 b'O\xab\xb6gy\xa2\x17\x1b\xadd\xc3\r\xa6\xee50'
125 b'O\xd7ogpWj\xee\xb0\xd8!y\xec\x08\xc7\xfa'
126 b"O\xf0u\x14\xcd\x8cT\x06\x9bm\xea\xddY\x08'\xef"

我有三个问题:

  1. 如何解释这些数据,为什么我会得到这个?
  2. 有没有办法将该数据恢复为原始的十六进制值?如果不...
  3. 我该怎么做才能收到原始的十六进制值?

我一直在寻找解决方案,但还没有找到任何东西,正如你所看到的,我不是此类主题的专家,所以如果你无法提供解决方案,我也将非常感谢包含一些内容的文档我需要获得背景知识,以便我可以自己提供解决方案。


我认为你的问题只是由于 SSMS 和 Python 产生不同的结果十六进制表示 of binary数据。您的专栏显然是binary or varbinary列,当您在 SSMS 中查询它时,您会看到其相当标准的二进制值的十六进制表示形式,例如,0x01476F726400.

当您使用 pyodbc 检索该值时,您会得到一个<class 'bytes'>对象表示为b'hex_representation'有一个转折:而不是简单地显示b'\x01\x47\x6F\x72\x64\x00',Python 会将与可打印 ASCII 字符对应的任何字节渲染为该字符,因此我们得到b'\x01Gord\x00'反而。

除了这个小烦恼(IMO)之外,好消息是您已经在 a 中拥有正确的字节<class 'bytes'>对象,准备传递给任何需要接收二进制数据的 Python 函数。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 SQL Server 查询 Python 中的二进制值 的相关文章

  • np.sqrt 对于非常大的整数的奇怪行为

    gt gt gt np version 1 7 0 gt gt gt np sqrt 10000000000000000000 3162277660 1683793 gt gt gt np sqrt 10000000000000000000
  • 如何创建 sqlalchemy 到 json

    我有一个 sqlalchemy 结果 labels session query LabelsData LabelsData id LabelsData name LabelsData color filter LabelsData dele
  • tf.print 什么时候才能真正按预期工作(即打印张量和变量的值)?

    首先 我使用的是TensorFlow 2 0 我只关心这个版本或更高版本 而且我已经太关心这样一个只会产生头痛的软件了 The TensorFlow 文档 https www tensorflow org api docs python t
  • 带有透明图像的可拖动 Tkinter 标签仍然覆盖父画布中的图像

    我正在努力在背景图像顶部添加可拖动标签 其中标签是具有透明背景的图像 用于标签本身的图像是透明的 但标签本身相对于其父画布不透明 由于标签是可拖动的 我无法轻松使用父图像作为标签 并将透明图像粘贴在顶部 龙是一个可拖动的标签 具有透明背景
  • SQL Server Management Studio 2005 或 2008 是否有 SVN 插件? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 正在寻找一个 源代码控制 插件来将 SSMS 与 Subversion SVN 集成 有人知道其中一个吗 Redgate 的解决方案似乎是
  • 在QT中以不同的时间间隔更新GUI [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想知道如何在QT中以不同的时间间隔更新GUI 最好的是我可以控制时间间隔 我知道 QTimer 可以在同一时间间隔更新 GUI 但我
  • 按应用于 Pandas 中同一列的条件进行计数

    这是我的数据框 acc index veh count veh type 001 1 1 002 2 1 002 2 2 003 2 1 003 2 2 004 1 1 005 2 1 005 2 3 006 1 2 007 2 1 007
  • 隐藏控制台窗口

    problem 我开始使用 Python 和 Tkinter 设计 GUI 应用程序 当我使用 cxFreeze 冻结脚本时 然后当我在计算机上运行该 EXE 文件时 然后首先打开控制台窗口 在 Windows XP 中为黑色 DOS sh
  • SSDT-BI 可以与 SQL Server 2008 R2 一起使用吗?

    有人可以告诉我在 Visual Studio 2012 或 2013 中开发的 SSIS 包是否可以在 2008r2 服务器上运行吗 如果是 2008r2服务器上还需要安装其他软件吗 这里不关心部署 我只想通过 sql 代理作业在 2008
  • Python 单行代码

    我想要用 Python 编写以下代码的单行解决方案 但是如何实现呢 total 0 for ob in self oblist total sum v amount for v in ob anoutherob 它返回总价值 我想要它是单行
  • SQL 从一列到另一列搜索字符串

    以前可能有人问过这个问题 但我不知道如何搜索它 我想查找 Column2 中的字符串是否是 Column1 的一部分 或者根本没有在 Column1 中使用 Column1 Column2 ABCDE JKL XC XC PQ A XYZ
  • Flask-SQLAlchemy .count() 和 .all() 的记录计数不同

    在 SQLAlchemy 中 ModelName query filter by field name value count 返回正确的记录数 但是ModelName query filter by field name value al
  • python matplotlib 无边框表格

    我在表格顶部有一个由以下示例生成的图 表格数据被随机数替换 实际绘图被一些任意函数替换 import numpy as np import matplotlib pylab as plt fig ax plt subplots ntp 17
  • 如何组合多个 TUI 表单来编写更复杂的应用程序?

    我想写一个程序T基于外部的User I界面 TUI https en wikipedia org wiki Text based user interface 由多种形式组成 第一种形式包含一个 列表 每个列表元素代表一个按钮 如果按下相应
  • 分段错误(核心转储),执行线程

    我试图在 python 中运行一个程序 该程序打开一个程序并从其标准输出中读取 当我运行程序代码时 出现分段错误错误 但是当我将代码放入函数 Myfunc 中的线程外时 它可以正常工作 我不明白发生了什么 这是我的代码 class Work
  • 使用 CustomCallback() 类在训练时实现冻结层

    我正在尝试在 TensorFlow 中训练自定义 CNN 模型 我想以某种方式在训练仍在运行时冻结特定时期模型的某些层 我已经实现了冻结层 但我必须在某些时期训练模型 然后在我想要冻结的特定层中将可训练属性更改为 False 然后编译模型
  • 带有 unicode 键的字典

    Python 中是否可以使用 Unicode 字符作为字典的键 我使用 Unicode 中的西里尔字母作为键 当尝试通过键获取值时 我得到以下回溯 Traceback most recent call last File baseCreat
  • 如何在 Pandas 的时间序列图上绘制垂直线?

    如何绘制垂直线 vlines 在熊猫系列情节中 我正在使用 Pandas 绘制滚动平均值等 并且想用垂直线标记重要位置 是否可以使用vlines或类似的东西来完成这个 在这种情况下 x 轴是datetime plt axvline x po
  • 从Python中的一行中删除标签

    我有一个具有以下架构的文本 word1 word2 br word3 word4 br 我想删除最后一部分 并将我的结果存储在另一个文件中 我已尝试以下操作 仍然没有将结果保存在其他文件中 def main fileR open test
  • Python 终端菜单?终端着色?终端进度显示?

    我有一个广泛使用 Python 2 风格 的项目 我想知道是否有终端菜单库或类似的东西 我希望通过使用箭头键突出显示选项 一些颜色等简化一些选项 为我的脚本注入一些风味和活力 我隐约记得有一种方法可以制作 bash shell 终端菜单 但

随机推荐