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

Python生成JSON上传Azure Blob后,如何设置Content Type为application/json?

解决Azure Blob存储中JSON文件Content Type设置为application/json的问题

json.dumps仅负责把Python对象序列化成JSON格式字符串,它不会控制文件的Content Type——这个属性是Azure Blob的元数据,必须在上传Blob时显式指定,或者对已上传的Blob修改元数据才能生效。

上传时直接设置Content Type

如果使用azure-storage-blob SDK(v12版本,当前主流),可以在调用upload_blob或upload_file方法时指定content_type参数:

情况1:直接上传JSON字符串

from azure.storage.blob import BlobClient
import json

# 你的已处理数据
json_document = [
   {
      "URL":"http://myexample.net",
      "domain":"abc",
      "domainSerialId":"skdksj12391ncjsacn",
      "proxy":"myexample.net"
   },
   {
      "URL":"http://myexample.org",
      "domain":"def",
      "domainSerialId":"sakdjsaye132978ejwdnwd",
      "proxy":"myexample.org"
   }
]

# 序列化为JSON字符串
json_str = json.dumps(json_document, ensure_ascii=False)

# 初始化Blob客户端
blob_client = BlobClient.from_connection_string(
    conn_str="你的Azure存储连接字符串",
    container_name="目标容器名",
    blob_name="output.json"
)

# 上传时指定Content Type为application/json
blob_client.upload_blob(json_str, content_type='application/json', overwrite=True)

情况2:上传本地JSON文件

如果先把数据写入本地文件再上传,同样可以在upload_file时指定参数:

# 先将数据写入本地JSON文件
with open('local_output.json', 'w', encoding='utf-8') as f:
    json.dump(json_document, f, ensure_ascii=False)

# 上传文件并设置Content Type
blob_client.upload_file('local_output.json', content_type='application/json', overwrite=True)

修改已上传Blob的Content Type

如果已经上传了Content Type错误的Blob,无需重新上传,直接更新元数据即可:

# 更新已存在Blob的Content Type
blob_client.set_http_headers(content_type='application/json')

核心逻辑:Content Type是Azure Blob的HTTP头属性,和JSON字符串本身无关,必须显式指定才能覆盖默认的application/octet-stream。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 03:41:44