如何使用云函数读取云存储中的 json 文件 - python
How to read json file in cloud storage using cloud functions - python
需要使用云函数 (python) 读取 GCS 存储桶中存在的 json 文件数据。
我已将所需的 json 数据上传到存储桶并尝试 运行 云功能。
输入json文件数据:
{"count":15,"data":[{"P_ID":21.0,"P_NAME":"MMME","TZ":"PST","DATE_MODIFIED":"2005-10-14 00:00:00"}]}
代码如下:
from google.cloud import storage
import base64
import json
import os
def hello_gcs(event, context):
"""
Triggered by a change to a Cloud Storage bucket.
Args:
event (dict): Event payload.
context (google.cloud.functions.Context): Metadata for the event.
"""
print("in CF")
print("event", event)
file_name = event['name']
bucket_name = event['bucket']
client = storage.Client()
bucket = client.get_bucket(bucket_name)
file_blob = storage.Blob(file_name, bucket)
download_data = file_blob.download_as_string().decode()
jsondata = {}
jsondata = download_data
print("download_data : ", download_data)
print("jsondata := ", jsondata)
print(jsondata['count'])
请指正。我没有得到代码中显示的数据。
这只是为了测试云功能,一旦它正常工作,我需要实现其他功能。
在事件触发时使用的函数,例如,当对象写入 Cloud Storage 时。但是你只有事件,没有内容。有了事件数据,您就拥有了下载文件和处理文件所需的一切。
这是工作代码。将下载文件转换为 json 对象并访问字段。
from google.cloud import storage
import base64
import json
import os
def hello_gcs(event, context):
"""
Triggered by a change to a Cloud Storage bucket.
Args:
event (dict): Event payload.
context (google.cloud.functions.Context): Metadata for the event.
"""
print("in CF")
print("event", event)
file_name = event['name']
bucket_name = event['bucket']
client = storage.Client()
bucket = client.get_bucket(bucket_name)
file_blob = storage.Blob(file_name, bucket)
download_data = file_blob.download_as_string().decode()
print("download_data : ", download_data)
"""
jsondata = {}
jsondata = download_data
"""
jsondata = {}
#convert string to object
jsondata = json.loads(download_data)
print("jsondata => ", jsondata)
print(jsondata['count'])
需要使用云函数 (python) 读取 GCS 存储桶中存在的 json 文件数据。 我已将所需的 json 数据上传到存储桶并尝试 运行 云功能。
输入json文件数据:
{"count":15,"data":[{"P_ID":21.0,"P_NAME":"MMME","TZ":"PST","DATE_MODIFIED":"2005-10-14 00:00:00"}]}
代码如下:
from google.cloud import storage
import base64
import json
import os
def hello_gcs(event, context):
"""
Triggered by a change to a Cloud Storage bucket.
Args:
event (dict): Event payload.
context (google.cloud.functions.Context): Metadata for the event.
"""
print("in CF")
print("event", event)
file_name = event['name']
bucket_name = event['bucket']
client = storage.Client()
bucket = client.get_bucket(bucket_name)
file_blob = storage.Blob(file_name, bucket)
download_data = file_blob.download_as_string().decode()
jsondata = {}
jsondata = download_data
print("download_data : ", download_data)
print("jsondata := ", jsondata)
print(jsondata['count'])
请指正。我没有得到代码中显示的数据。 这只是为了测试云功能,一旦它正常工作,我需要实现其他功能。
在事件触发时使用的函数,例如,当对象写入 Cloud Storage 时。但是你只有事件,没有内容。有了事件数据,您就拥有了下载文件和处理文件所需的一切。
这是工作代码。将下载文件转换为 json 对象并访问字段。
from google.cloud import storage
import base64
import json
import os
def hello_gcs(event, context):
"""
Triggered by a change to a Cloud Storage bucket.
Args:
event (dict): Event payload.
context (google.cloud.functions.Context): Metadata for the event.
"""
print("in CF")
print("event", event)
file_name = event['name']
bucket_name = event['bucket']
client = storage.Client()
bucket = client.get_bucket(bucket_name)
file_blob = storage.Blob(file_name, bucket)
download_data = file_blob.download_as_string().decode()
print("download_data : ", download_data)
"""
jsondata = {}
jsondata = download_data
"""
jsondata = {}
#convert string to object
jsondata = json.loads(download_data)
print("jsondata => ", jsondata)
print(jsondata['count'])