[英]How to read json file in cloud storage using cloud functions - python
需要使用雲函數(python)讀取 GCS 存儲桶中存在的 json 文件數據。 我已將所需的 json 數據上傳到存儲桶並嘗試運行雲 function。
輸入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'])
請糾正我。 我沒有得到代碼中顯示的數據。 這只是為了測試雲 function 一旦它正常工作,我需要實現其他功能。
這是工作代碼。 將下載文件轉換為 json object 並訪問字段。
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'])
function 在事件觸發時使用,例如,當 object 寫入 Cloud Storage 時。 但是你只有事件,沒有內容。 有了事件數據,您就擁有了下載文件和處理文件所需的一切。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.