如何在 Python 中提取 Azure JSON blob 文件内容

Posted

技术标签:

【中文标题】如何在 Python 中提取 Azure JSON blob 文件内容【英文标题】:How to extract Azure JSON blob file contents in Python 【发布时间】:2021-11-27 22:30:54 【问题描述】:

我正在寻找一般指导/说明,不一定是实际代码。答案可能是:“你不能”,或者如果可行,请提供一些关于应该执行哪些步骤的说明。我已手动将 Azure blob 文件 (05.JSON) 下载到本地驱动器。 Blob 包含 JSON 格式的设备遥测消息。如果我查看原始 blob,我当然无法看到这些消息。如何在 Python 中检索原始消息 JSON?或者我可以吗?我尝试使用 Pandas.read_csv("05.json") 将 blob 加载到 Pandas 数据框中。它加载了它,但仍处于 blob 原始结构中,即无法在其 JSON 结构中看到原始消息。

更新:我刚刚发现 blob CONTENT-TYPE 是 application/octet-stream 所以我认为这就是为什么我在 blob 中看不到预期的 JSON 结构

【问题讨论】:

我们没有关于文件 (05.JSON) 包含什么的信息 blob 存储中的文件只是文件 - 没有 Azure blob 文件之类的东西,所以您的问题似乎与 .json 文件有关?为什么要使用read_csv 来读取.json,而不是pandas.io.json.read_json 您是否尝试过使用内置的 json 解析器读取数据? ***.com/questions/20199126/reading-json-from-a-file 感谢大家的提示和建议。我发现 CONTENT-TYPE 应用程序/八位字节流而不是文本或 JSON。这就是为什么我在 blob 中得到 ASCII 代码而不是预期的 JSON 结构的原因。我需要弄清楚如何解码这个八位字节流。 【参考方案1】:

我发现 Azure IoT 中心默认情况下将 blob 保存在编码的 CONTENT TYPE = application/octet-stream 中,这就是为什么我看到无意义的 ASCII 字符而不是原始 JSON 的原因。 CONTENT TYPW 必须设置为 tp application/json 才能以 JSON 格式保存 blob。

【讨论】:

以上是关于如何在 Python 中提取 Azure JSON blob 文件内容的主要内容,如果未能解决你的问题,请参考以下文章

将 python 函数部署到 Azure 函数

如何在 Azure 流分析中展平嵌套的 json 数据

如何通过 python 将 JSON 数据附加到存储在 Azure blob 存储中的现有 JSON 文件?

从 Azure SQL 中非常嵌套的 JSON 中提取数据

在 Azure 流分析中的属性内提取数组

在 Powershell 中提取 json 问题