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

Azure BlobClient上传Python dict到Blob Storage时JSON格式异常如何解决

原因说明

你传入upload_blob方法的参数是Python dict类型,Azure Storage SDK 处理非字节、非文件类的入参时,默认会按application/x-www-form-urlencoded格式编码为表单数据,这就是你看到上传后内容变成&拼接的键值对格式的原因,并不是预期的JSON结构。

解决方法

上传前先将Python字典序列化为标准JSON格式的内容即可,修改后的代码参考如下:

# 首先导入标准库json模块,注意不要和你存储数据的变量名冲突
import json
from azure.storage.blob import BlobClient
from azure.identity import DefaultAzureCredential

# 原有变量定义部分无需修改
blob_name = 'test.json'
blob_url = f"{account_url}/{container_name}/{blob_name}"
sa_credential = DefaultAzureCredential()

blob_client = BlobClient.from_blob_url(
    blob_url=blob_url,
    credential=sa_credential
)

# 新增:将字典序列化为UTF-8编码的JSON字节流
# 这里加ensure_ascii=False是避免内容里的中文被转义为Unicode编码,无中文可删除
json_content = json.dumps(json, ensure_ascii=False).encode('utf-8')
# 上传序列化后的内容,指定content_type方便后续访问时识别为JSON格式
# overwrite=True表示允许覆盖同名Blob,不需要覆盖可删除该参数
blob_client.upload_blob(json_content, overwrite=True, content_type='application/json')

补充提示:你当前存储JSON数据的变量名为json,和Python标准库的json模块重名,建议修改为json_data之类的自定义名称,避免后续调用模块时出现命名冲突异常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 03:48:05