Поделиться через


TableClient Класс

Клиент для взаимодействия с определенной таблицей в учетной записи таблиц Azure.

Создайте TableClient на основе учетных данных.

Наследование
azure.data.tables._base_client.TablesBaseClient
TableClient

Конструктор

TableClient(endpoint: str, table_name: str, *, credential: AzureNamedKeyCredential | AzureSasCredential | TokenCredential | None = None, **kwargs)

Параметры

endpoint
str
Обязательно

URL-адрес учетной записи Таблиц Azure.

table_name
str
Обязательно

Имя таблицы.

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]

Параметры

entity
Union[TableEntity, Mapping[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

Параметры

partition_key
str
Обязательно

Ключ секции сущности.

row_key
str
Обязательно

Ключ строки сущности.

entity
Union[TableEntity, Mapping[str, str]]
Обязательно

Удаляемая сущность

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

Параметры

conn_str
str
Обязательно

Строка подключения к учетной записи Таблиц Azure.

table_name
str
Обязательно

Имя таблицы.

Возвращаемое значение

Клиент таблицы.

Возвращаемый тип

Примеры

Проверка подлинности 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

Параметры

partition_key
str
Обязательно

Ключ секции сущности.

row_key
str
Обязательно

Ключ строки сущности.

select
str или list[str]

Укажите требуемые свойства возвращаемой сущности.

Возвращаемое значение

Метаданные операции сопоставления словаря, возвращаемые службой

Возвращаемый тип

Исключения

Примеры

Получение одной сущности из таблицы


   # 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

Количество сущностей, возвращаемых на запрос службы.

select
str или list[str]

Укажите требуемые свойства возвращаемой сущности.

Возвращаемое значение

Итератор 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

Количество сущностей, возвращаемых на запрос службы.

select
str или list[str]

Укажите требуемые свойства возвращаемой сущности.

parameters
dict[str, Any]

Словарь для форматирования запроса с дополнительными, определяемыми пользователем параметрами

Возвращаемое значение

Итератор 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

Параметры

signed_identifiers
dict[str, TableAccessPolicy] или dict[str, 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]]

Параметры

operations
Iterable[Tuple[str, TableEntity, 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]

Параметры

entity
TableEntity или dict[str, Any]
Обязательно

Свойства сущности таблицы.

mode
UpdateMode
Обязательно

Объединение или замена сущности

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]

Параметры

entity
TableEntity или dict[str, Any]
Обязательно

Свойства сущности таблицы.

mode
UpdateMode
Обязательно

Объединение или замена сущности

Возвращаемое значение

Метаданные операции сопоставления словаря, возвращаемые службой

Возвращаемый тип

Исключения

Примеры

Обновление, слияние или вставка сущности в таблицу


   # 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, если используется.

Возвращаемый тип

str