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)
此方法使用 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)