我正在尝试从存储在Google云存储桶中的 VM实例中的python代码中以Concrete1 thing;
void setThing(const Concrete1& t) {
thing = Concrete1(t);
}
的形式读取.json
文件。
我尝试将json文件读取为blob:
dict()
但是我无法解码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()
。我的方法正确吗?如果有其他可用的方法,请告诉我。
我需要类似的东西:
str_json
答案 0 :(得分:1)
以下是使用官方云存储库进行访问的另一种方法:
# 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))
答案 1 :(得分:0)
此方法使用 GCS 文件系统 gcsfs
可用于从 Google Cloud 存储读取文件。
# 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)
此方法也适用于 图像 存储在 GCS 中的 skimage
as,
from skimage import io
with gcs_file_system.open(gcs_img_path) as f:
img = io.imread(f)