You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python查询Azure Blob存储JSON数据失败排查及表名疑问

问题解决及说明

报错原因与修复

你的错误源于使用了不匹配的格式处理类:DelimitedJsonDialect是专门处理**每行一个独立JSON对象(JSON Lines格式)**的Blob,且无需手动指定delimiter=','(默认按换行符分隔)。根据报错信息,你的Blob应该是标准的JSON数组结构(比如[{"key1":val1}, {"key2":val2}, ...]),此时需要改用JsonDialect,并通过record_path指定数组的根路径。

修复后的代码示例(针对标准JSON数组):

from azure.storage.blob import JsonDialect

query_expression = "SELECT COUNT(*) from blobdata"
# 配置标准JSON数组的解析规则
input_format = JsonDialect(record_path="$")
reader = blob_client.query_blob(query_expression, on_error=on_error, blob_format=input_format)
content = reader.readall()
print(content)

如果你的Blob确实是每行一个JSON对象的JSON Lines格式,只需删除错误的delimiter=','参数即可:

from azure.storage.blob import DelimitedJsonDialect

query_expression = "SELECT COUNT(*) from blobdata"
input_format = DelimitedJsonDialect()  # 默认按行分隔,无需指定逗号
reader = blob_client.query_blob(query_expression, on_error=on_error, blob_format=input_format)
content = reader.readall()
print(content)

查询语句的表名说明

查询语句中的表名固定为blobdata,这是Azure Blob存储查询功能的默认虚拟表名,所有Blob内容都会映射到这个表中,无需修改。

内容的提问来源于stack exchange,提问作者Guy Altman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 13:50:40