我正在编写一个 python 脚本来查询 Azure 表存储中的数据。
我要提取的数据是Binary类型(信息被序列化并存储)
当我使用entity['BodyChunk01]运行代码时,我得到的值是
'BodyChunk01': <azure.data.tables._entity.EntityProperty object at 0x0DDFFB10>
(列名称为BodyChunk01)
当我使用 entity['BodyChunk01'].value (如 stackoverflow 上的另一个问题所述)时,它返回反序列化的 json 数据,但我想要存储的实际序列化值,如您所见在下面的屏幕截图中
最佳答案
我相信你想要完成的事情是不可能的。我查了一下SDK代码here
看来SDK正在根据代码here
强制进行转换.
def _decode_base64_to_bytes(data):
if isinstance(data, six.text_type):
data = data.encode("utf-8")
return base64.b64decode(data)
您可能想在这里提出问题:https://github.com/Azure/azure-sdk-for-python/issues并提请 SDK 团队注意。
<删除> 二进制数据被转换为“Base64 编码字符串”,然后保存。您需要做的是进行 Base64 解码以获取字节数组。我不太熟悉Python,但你可以这样做:
import base64
decodedBytes = base64.b64decode(entity['BodyChunk01'].value)
decodedStr = str(decodedBytes, "utf-8")
关于python - 从 Azure 表存储中提取字节值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67006120/