TableClient Класс
Клиент для взаимодействия с определенной таблицей в учетной записи таблиц Azure.
Создайте TableClient на основе учетных данных.
- Наследование
-
azure.data.tables._base_client.TablesBaseClientTableClient
Конструктор
TableClient(endpoint: str, table_name: str, *, credential: AzureNamedKeyCredential | AzureSasCredential | TokenCredential | None = None, **kwargs)
Параметры
- credential
- AzureNamedKeyCredential или AzureSasCredential или TokenCredential или None
Учетные данные, с помощью которых выполняется проверка подлинности. Это необязательно, если URL-адрес учетной записи уже содержит маркер SAS. Это может быть одно из значений AzureNamedKeyCredential (azure-core), AzureSasCredential (azure-core) или реализация TokenCredential из azure-identity.
- api_version
- str
Задает версию операции, используемой для этого запроса. Значение по умолчанию — "2019-02-02".
Переменные
- account_name
- str
Имя учетной записи Таблиц.
- table_name
- str
Имя таблицы.
- scheme
- str
Компонент схемы в полном URL-адресе учетной записи Таблиц.
- url
- str
Конечная точка хранилища.
- api_version
- str
Версия API службы.
Методы
close |
Этот метод позволяет закрыть сокеты, открытые клиентом. Его не нужно использовать при использовании с диспетчером контекста. |
create_entity |
Вставка сущности в таблицу. |
create_table |
Создает новую таблицу в текущей учетной записи. |
delete_entity |
Удаляет указанную сущность в таблице. Если не найдена сущность или PartitionKey-RowKey связывание, ошибка не возникает. |
delete_table |
Удаляет таблицу под текущей учетной записью. Ошибка не возникает, если таблица не существует |
from_connection_string |
Создайте TableClient из строки подключения. |
from_table_url |
Клиент для взаимодействия с определенной таблицей. AzureSasCredential (azure-core) или реализация TokenCredential из azure-identity. учетные данные :p aramtype: ~azure.core.credentials.AzureNamedKeyCredential или ~azure.core.credentials.AzureSasCredential или None |
get_entity |
Получение одной сущности в таблице. |
get_table_access_policy |
Извлекает сведения о всех хранимых политиках доступа, указанных в таблице, которые могут использоваться с подписанными URL-адресами. |
list_entities |
Перечисляет сущности в таблице. |
query_entities |
Перечисляет сущности в таблице. |
set_table_access_policy |
Задает хранимые политики доступа для таблицы, которые могут использоваться с подписанными URL-адресами. |
submit_transaction |
Зафиксируйте список операций как одну транзакцию. Если какая-либо из этих операций завершается сбоем, вся транзакция будет отклонена. |
update_entity |
Обновление сущности в таблице. |
upsert_entity |
Обновление или слияние или вставка сущности в таблицу. |
close
Этот метод позволяет закрыть сокеты, открытые клиентом. Его не нужно использовать при использовании с диспетчером контекста.
close() -> None
create_entity
Вставка сущности в таблицу.
create_entity(entity: TableEntity | Mapping[str, Any], **kwargs) -> Dict[str, Any]
Параметры
Возвращаемое значение
Метаданные операции сопоставления словаря, возвращаемые службой
Возвращаемый тип
Исключения
Примеры
Создание и добавление сущности в таблицу
try:
resp = table_client.create_entity(entity=self.entity)
print(resp)
except ResourceExistsError:
print("Entity already exists")
create_table
Создает новую таблицу в текущей учетной записи.
create_table(**kwargs) -> TableItem
Возвращаемое значение
Объект TableItem, представляющий созданную таблицу.
Возвращаемый тип
Исключения
Если сущность уже существует
Примеры
Создание таблицы из объекта TableClient
with TableClient.from_connection_string(
conn_str=self.connection_string, table_name=self.table_name
) as table_client:
try:
table_item = table_client.create_table()
print("Created table {}!".format(table_item.name))
except ResourceExistsError:
print("Table already exists")
delete_entity
Удаляет указанную сущность в таблице. Если не найдена сущность или PartitionKey-RowKey связывание, ошибка не возникает.
delete_entity(partition_key: str, row_key: str, **kwargs) -> None
Параметры
- etag
- str
Etag сущности
- match_condition
- MatchConditions
Условие, при котором выполняется операция. Поддерживаемые значения: MatchConditions.IfNotModified, MatchConditions.Безусловно. Значение по умолчанию — Безусловно.
Возвращаемое значение
Нет
Исключения
Примеры
Удаление сущности таблицы
table_client.delete_entity(row_key=self.entity["RowKey"], partition_key=self.entity["PartitionKey"])
print("Successfully deleted!")
delete_table
Удаляет таблицу под текущей учетной записью. Ошибка не возникает, если таблица не существует
delete_table(**kwargs) -> None
Возвращаемое значение
Нет
Исключения
Примеры
Удаление таблицы из объекта TableClient
with TableClient.from_connection_string(
conn_str=self.connection_string, table_name=self.table_name
) as table_client:
table_client.delete_table()
print("Deleted table {}!".format(table_client.table_name))
from_connection_string
Создайте TableClient из строки подключения.
from_connection_string(conn_str: str, table_name: str, **kwargs) -> TableClient
Параметры
Возвращаемое значение
Клиент таблицы.
Возвращаемый тип
Примеры
Проверка подлинности TableServiceClient из connection_string
from azure.data.tables import TableClient
with TableClient.from_connection_string(
conn_str=self.connection_string, table_name="tableName"
) as table_client:
print("Table name: {}".format(table_client.table_name))
from_table_url
Клиент для взаимодействия с определенной таблицей.
AzureSasCredential (azure-core) или реализация TokenCredential из azure-identity. учетные данные :p aramtype:
~azure.core.credentials.AzureNamedKeyCredential или ~azure.core.credentials.AzureSasCredential или None
from_table_url(table_url: str, *, credential: AzureNamedKeyCredential | AzureSasCredential | None = None, **kwargs) -> TableClient
Параметры
- table_url
Возвращаемое значение
Клиент таблицы.
Возвращаемый тип
get_entity
Получение одной сущности в таблице.
get_entity(partition_key: str, row_key: str, **kwargs) -> TableEntity
Параметры
Возвращаемое значение
Метаданные операции сопоставления словаря, возвращаемые службой
Возвращаемый тип
Исключения
Примеры
Получение одной сущности из таблицы
# Get Entity by partition and row key
got_entity = table.get_entity(partition_key=my_entity["PartitionKey"], row_key=my_entity["RowKey"])
print("Received entity: {}".format(got_entity))
get_table_access_policy
Извлекает сведения о всех хранимых политиках доступа, указанных в таблице, которые могут использоваться с подписанными URL-адресами.
get_table_access_policy(**kwargs) -> Dict[str, TableAccessPolicy | None]
Возвращаемое значение
Словарь signedIdentifiers
Возвращаемый тип
Исключения
list_entities
Перечисляет сущности в таблице.
list_entities(**kwargs) -> ItemPaged[TableEntity]
Параметры
- results_per_page
- int
Количество сущностей, возвращаемых на запрос службы.
Возвращаемое значение
Итератор TableEntity
Возвращаемый тип
Исключения
Примеры
Вывод списка всех сущностей, содержащихся в таблице
# Query the entities in the table
entities = list(table.list_entities())
for i, entity in enumerate(entities):
print("Entity #{}: {}".format(entity, i))
query_entities
Перечисляет сущности в таблице.
query_entities(query_filter: str, **kwargs) -> ItemPaged[TableEntity]
Параметры
- query_filter
- str
Укажите фильтр для возврата определенных сущностей. Дополнительные сведения о форматировании фильтров см. в документации по примерам.
- results_per_page
- int
Количество сущностей, возвращаемых на запрос службы.
Словарь для форматирования запроса с дополнительными, определяемыми пользователем параметрами
Возвращаемое значение
Итератор TableEntity
Возвращаемый тип
Исключения
Примеры
Сущности запросов, хранящиеся в таблице
with TableClient.from_connection_string(self.connection_string, self.table_name) as table_client:
try:
print("Basic sample:")
print("Entities with name: marker")
parameters = {"name": "marker"}
name_filter = "Name eq @name"
queried_entities = table_client.query_entities(
query_filter=name_filter, select=["Brand", "Color"], parameters=parameters
)
for entity_chosen in queried_entities:
print(entity_chosen)
print("Sample for querying entities withtout metadata:")
print("Entities with name: marker")
parameters = {"name": "marker"}
name_filter = "Name eq @name"
headers = {"Accept": "application/json;odata=nometadata"}
queried_entities = table_client.query_entities(
query_filter=name_filter, select=["Brand", "Color"], parameters=parameters, headers=headers
)
for entity_chosen in queried_entities:
print(entity_chosen)
print("Sample for querying entities with multiple params:")
print("Entities with name: marker and brand: Crayola")
parameters = {"name": "marker", "brand": "Crayola"}
name_filter = "Name eq @name and Brand eq @brand"
queried_entities = table_client.query_entities(
query_filter=name_filter, select=["Brand", "Color"], parameters=parameters
)
for entity_chosen in queried_entities:
print(entity_chosen)
print("Sample for querying entities' values:")
print("Entities with 25 < Value < 50")
parameters = {"lower": 25, "upper": 50} # type: ignore
name_filter = "Value gt @lower and Value lt @upper"
queried_entities = table_client.query_entities(
query_filter=name_filter, select=["Value"], parameters=parameters
)
for entity_chosen in queried_entities:
print(entity_chosen)
except HttpResponseError as e:
raise
set_table_access_policy
Задает хранимые политики доступа для таблицы, которые могут использоваться с подписанными URL-адресами.
set_table_access_policy(signed_identifiers: Dict[str, TableAccessPolicy | None], **kwargs) -> None
Параметры
Доступ к политикам, заданным для таблицы
Возвращаемое значение
Нет
Исключения
submit_transaction
Зафиксируйте список операций как одну транзакцию.
Если какая-либо из этих операций завершается сбоем, вся транзакция будет отклонена.
submit_transaction(operations: Iterable[Tuple[TransactionOperation | str, TableEntity | Mapping[str, Any]] | Tuple[TransactionOperation | str, TableEntity | Mapping[str, Any], Mapping[str, Any]]], **kwargs) -> List[Mapping[str, Any]]
Параметры
Список операций для фиксации в транзакции. Это должен быть итератор кортежей, содержащий имя операции, сущность, с которой следует работать, и, при необходимости, диктовку дополнительных kwargs для этой операции. Пример:
- ('upsert', {'PartitionKey': 'A', 'RowKey': 'B'})
- ('upsert', {'PartitionKey': 'A', 'RowKey': 'B'}, {'mode': UpdateMode.REPLACE})
Возвращаемое значение
Список сопоставлений с метаданными ответа для каждой операции в транзакции.
Возвращаемый тип
Исключения
Примеры
Использование транзакций для отправки нескольких запросов одновременно
from azure.data.tables import TableClient, TableTransactionError
from azure.core.exceptions import ResourceExistsError
self.table_client = TableClient.from_connection_string(
conn_str=self.connection_string, table_name=self.table_name
)
try:
self.table_client.create_table()
print("Created table")
except ResourceExistsError:
print("Table already exists")
self.table_client.upsert_entity(entity2)
self.table_client.upsert_entity(entity3)
self.table_client.upsert_entity(entity4)
operations = [
("upsert", entity1),
("delete", entity2),
("upsert", entity3),
("update", entity4, {"mode": "replace"}),
]
try:
self.table_client.submit_transaction(operations) # type: ignore[arg-type]
except TableTransactionError as e:
print("There was an error with the transaction operation")
print(e)
update_entity
Обновление сущности в таблице.
update_entity(entity: TableEntity | Mapping[str, Any], mode: UpdateMode = UpdateMode.MERGE, **kwargs) -> Dict[str, Any]
Параметры
- etag
- str
Etag сущности
- match_condition
- MatchConditions
Условие, при котором выполняется операция. Поддерживаемые значения: MatchConditions.IfNotModified, MatchConditions.Безусловно. Значение по умолчанию — Безусловно.
Возвращаемое значение
Метаданные операции сопоставления словаря, возвращаемые службой
Возвращаемый тип
Исключения
Примеры
Обновление уже завершающейся сущности в таблице
# Update the entity
created["text"] = "NewMarker"
table.update_entity(mode=UpdateMode.REPLACE, entity=created)
# Get the replaced entity
replaced = table.get_entity(partition_key=created["PartitionKey"], row_key=created["RowKey"])
print("Replaced entity: {}".format(replaced))
# Merge the entity
replaced["color"] = "Blue"
table.update_entity(mode=UpdateMode.MERGE, entity=replaced)
# Get the merged entity
merged = table.get_entity(partition_key=replaced["PartitionKey"], row_key=replaced["RowKey"])
print("Merged entity: {}".format(merged))
upsert_entity
Обновление или слияние или вставка сущности в таблицу.
upsert_entity(entity: TableEntity | Mapping[str, Any], mode: UpdateMode = UpdateMode.MERGE, **kwargs) -> Dict[str, Any]
Параметры
Возвращаемое значение
Метаданные операции сопоставления словаря, возвращаемые службой
Возвращаемый тип
Исключения
Примеры
Обновление, слияние или вставка сущности в таблицу
# Try Replace and insert on fail
insert_entity = table.upsert_entity(mode=UpdateMode.REPLACE, entity=entity1)
print("Inserted entity: {}".format(insert_entity))
created["text"] = "NewMarker"
merged_entity = table.upsert_entity(mode=UpdateMode.MERGE, entity=entity)
print("Merged entity: {}".format(merged_entity))
Атрибуты
api_version
Версия API хранилища, используемого для запросов.
Возвращаемое значение
Версия API хранилища.
url
Полный URL-адрес конечной точки для этой сущности, включая маркер SAS, если он используется.
Это может быть либо основная конечная точка, либо вторичная конечная точка в зависимости от текущей <xref:azure.data.tables.location_mode>.
Возвращаемое значение
Полный URL-адрес конечной точки, включая маркер SAS, если используется.
Возвращаемый тип
Azure SDK for Python
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по