如何从谷歌云存储桶中读取Python代码中的.json文件

Swa*_*kar 14 json python-3.x google-cloud-storage

我正在尝试从存储在谷歌云存储桶中的VM实例读取Python代码中的.json文件。dict()

我尝试将 json 文件读取为 blob:

client = storage.Client()
bucket = client.get_bucket('bucket-id-here')
blob = bucket.get_blob('remote/path/to/file.json')
str_json = blob.download_as_string()
Run Code Online (Sandbox Code Playgroud)

但我无法解码str_json. 我的做法正确吗?如果有任何其他方法可用,请告诉我。

我需要类似的东西:

client = storage.Client()
bucket = client.get_bucket('bucket-id-here')
blob = bucket.get_blob('remote/path/to/file.json')
str_json = blob.download_as_string()
Run Code Online (Sandbox Code Playgroud)

Den*_*rev 20

这是使用官方云存储库来访问它的另一种方法:

# Import the Google Cloud client library and JSON library
from google.cloud import storage
import json

# Instantiate a Google Cloud Storage client and specify required bucket and file
storage_client = storage.Client()
bucket = storage_client.get_bucket('bucket_name')
blob = bucket.blob('filename.json')

# Download the contents of the blob as a string and then parse it using json.loads() method
data = json.loads(blob.download_as_string(client=None))
Run Code Online (Sandbox Code Playgroud)


Swa*_*kar 6

此方法使用 GCS 文件系统gcsfs,可用于从 Google 云存储读取文件。

# Reading gcs files with gcsfs
import gcsfs
import json

gcs_file_system = gcsfs.GCSFileSystem(project="gcp_project_name")
gcs_json_path = "gs://bucket_name/path/to/file.json"
with gcs_file_system.open(gcs_json_path) as f:
  json_dict = json.load(f)
Run Code Online (Sandbox Code Playgroud)

此方法也适用于存储在 GCS 中的图像skimage,如下所示:

from skimage import io
with gcs_file_system.open(gcs_img_path) as f:
  img = io.imread(f)
Run Code Online (Sandbox Code Playgroud)