Как проверить успешность операции Put в хранилище данных Python
Я запускаю следующий код Python локально с помощью эмулятора Datastore Emulator и Datastore-Python-Client-Library.
# Imports the Google Cloud client library
from google.cloud import datastore
# Instantiates a client
datastore_client = datastore.Client()
# The kind for the new entity
kind = 'Task'
# The name/ID for the new entity
name = 'sampletask1'
# The Cloud Datastore key for the new entity
task_key = datastore_client.key(kind, name)
# Prepares the new entity
task = datastore.Entity(key=task_key)
task['description'] = 'Buy milk'
# Saves the entity
datastore_client.put(task)
print('Saved {}: {}'.format(task.key.name, task['description']))
Если put
операция не выполняется (при условии, что эмулятор хранилища данных не запущен), как я могу получить значение ошибки и сообщение о том, что операция не удалась?
В настоящее время put
операция выполняется успешно, и сообщение об ошибке или исключение не возникает.
1 ответ
Если ваша операция не удалась, вы получите исключение, поэтому вам нужно обработать исключение. # Импортирует клиентскую библиотеку Google Cloud из хранилища данных импорта google.cloud
# Instantiates a client
datastore_client = datastore.Client()
# The kind for the new entity
kind = 'Task'
# The name/ID for the new entity
name = 'sampletask1'
# The Cloud Datastore key for the new entity
task_key = datastore_client.key(kind, name)
# Prepares the new entity
task = datastore.Entity(key=task_key)
task['description'] = 'Buy milk'
# Saves the entity
try:
datastore_client.put(task)
except Exception as ex:
print("Exception: " + str(ex))
#Exception handling function
print('Saved {}: {}'.format(task.key.name, task['description']))
или для нескольких транзакций вы можете
with client.transaction():
try:
datastore_client.put_multi(multipleEntitites)
except Exception as ex:
print("Exception during multiple set" + str(ex))
#Exception handling function