#python #google-cloud-platform #google-cloud-functions
#python #google-cloud-platform #google-cloud-функции
Вопрос:
Я пытаюсь загрузить файл в корзину, выполнить синтаксический анализ в формате json и вставить его в таблицу в bigquery. Я получаю эту ошибку
AttributeError: 'str' object has no attribute 'blob'
Я считаю, что это проблема с зависимостью, но я не знаю, как ее решить.
Я кодирую непосредственно в графический интерфейс облачной функции.
def create_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.
"""
file = event
print(f"********The file {file['name']} was created in {file['bucket']} at {event['timeCreated']}")
bucket = file['bucket']
blob = bucket.get_blob(file['name'])
data = blob.download_as_string()
table_id="tableid"
client=bigquery.Client()
client.insert_rows_json(table_id,[data])
print(blob)
Комментарии:
1. Это тот же код, который вызвал эту ошибку? Я не вижу ничего, что могло бы его создать. Можете ли вы включить всю трассировку стека?
Ответ №1:
Я думаю, вам следует сначала создать объект клиента хранилища и вызвать get_blob
функцию.
Большие двоичные объекты / Объекты
from google.cloud import storage
client = storage.Client()
bucket = client.get_bucket(file['bucket'])
blob = bucket.get_blob(file['name'])