簡體   English   中英

如何使用雲函數讀取雲存儲中的 json 文件 - python

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM