gpt4 book ai didi

python - 将 MSSQL varbinary 转换为 base64 字符串

转载 作者:行者123 更新时间:2023-11-28 18:57:55 24 4
gpt4 key购买 nike

目标

获取mssql中的数据,一张图片,转换为base64并嵌入到邮件中。

迪茨

我有一个图像,存储在 mssql 数据库的 varbinary 列中。

0xFFD8FFE00....

在另一端,我将它查询到一个古老的 Jython 环境中,因为那是我可以访问的所有内容。

当我查询和打印时,我似乎得到了一个带符号的字节数组或一个字符(也许?)。

>>> array('b', [-1, -40, -1, -32, 0, 16,...

另一个线程建议将其转储到 b64 编码器中

import base64
encoded = base64.b64encode(queryResult)

这给了我一个错误 TypeError: b2a_base64(): 1st arg can't be coerced to String

该线程还提到将其转换为 json,但由于我在 Python 2.4 领域,我无权访问 import jsonimport simplejson。在这里使用 json 解释器对我来说似乎是一个大问题。

我还尝试在 SQL 端使用 decompress 将其转换为 xml,但这些都不起作用。这些图像在作为电子邮件附件传递时工作正常,因此据我所知它们没有损坏。要将它们嵌入到 html 模板中,我需要取出 Base64 字符串。

我遗漏了一些东西,我没有经常使用这些东西来弄清楚。我知道高级别的有符号/无符号、字节顺序,但我不能完全破解这个问题。

最佳答案

Converting Column values from VARBINARY to Base64

在大多数情况下,我们需要处理表中的多行,并且我们只想将 VARBINARY 数据转换为 BASE64 字符串。基本解决方案与上面相同,除了使用 XML XQuery 的解决方案,我们只需要使用不同的方法即可。

选项 1:使用 JSON 将二进制转换为 Base64

    select Id,AvatarBinary
from openjson(
(
select Id,AvatarBinary
from AriTestTbl
for json auto
)
) with(Id int, AvatarBinary varchar(max))
GO

选项 2:使用 XML XQuery 将二进制文件转换为 Base64

    select Id,
cast('' as xml).value(
'xs:base64Binary(sql:column("AriTestTbl.AvatarBinary"))', 'varchar(max)'
)
from AriTestTbl
GO

选项 3:使用 XML 和提示“for xml path”将二进制文件转换为 Base64

    select Id,AvatarBinary,s
from AriTestTbl
cross apply (select AvatarBinary as '*' for xml path('')) T (s)
GO

希望这有助于...

关于python - 将 MSSQL varbinary 转换为 base64 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56061485/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com