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

如何将JSON文件/字典上传至Google Cloud Storage?报错如何解决

问题解答

将JSON字典或文件上传到Google Cloud Storage是完全可实现的,你的报错由API调用参数错误导致,具体如下:

错误原因

  • bucket.blob() 接收的参数是存储到GCS后的文件名称(字符串类型),你传入了解析后的Python字典对象,无法被转为字符串触发报错
  • upload_from_filename() 接收的参数是本地文件的路径字符串,用于上传本地已存在的文件,你当前的数据是内存中的字典,该方法不适用于这个场景,且同样不能传入字典对象

修正方案

方案1:直接上传内存中的JSON数据(推荐,无需生成本地文件)

import json
import requests
from google.cloud import storage

response = requests.get(url, headers=headers)
json_data = response.json()

storage_client = storage.Client()
bucket = storage_client.bucket("syr_test_bucket1")

# 自定义GCS中存储的文件名
blob = bucket.blob("uploaded_data.json")
# 将字典转为JSON字符串后上传,ensure_ascii=False避免中文乱码
blob.upload_from_string(
    json.dumps(json_data, ensure_ascii=False),
    content_type="application/json"
)

方案2:先存为本地文件再上传

如果需要先保留本地副本,可以使用该方式:

import json
import requests
from google.cloud import storage

response = requests.get(url, headers=headers)
json_data = response.json()

# 先写入本地JSON文件
local_file_path = "./temp_data.json"
with open(local_file_path, "w", encoding="utf-8") as f:
    json.dump(json_data, f, ensure_ascii=False)

storage_client = storage.Client()
bucket = storage_client.bucket("syr_test_bucket1")

blob = bucket.blob("uploaded_data.json")
# 传入本地文件路径上传
blob.upload_from_filename(local_file_path)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 22:36:01