TableClient Classe

Um cliente para interagir com uma Tabela específica numa conta de Tabelas do Azure.

Criar TableClient a partir de uma Credencial.

Herança
azure.data.tables._base_client.TablesBaseClient
TableClient

Construtor

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

Parâmetros

endpoint
str
Necessário

Um URL para uma conta de Tabelas do Azure.

table_name
str
Necessário

O nome da tabela.

credential
AzureNamedKeyCredential ou AzureSasCredential ou TokenCredential ou None

As credenciais com as quais se autenticar. Isto é opcional se o URL da conta já tiver um token de SAS. O valor pode ser um de AzureNamedKeyCredential (azure-core), AzureSasCredential (azure-core) ou uma implementação TokenCredential a partir de azure-identity.

api_version
str

Especifica a versão da operação a utilizar para este pedido. O valor predefinido é "2019-02-02".

Variáveis

account_name
str

O nome da conta Tabelas.

table_name
str

O nome da tabela.

scheme
str

O componente do esquema no URL completo para a conta Tabelas.

url
str

O ponto final de armazenamento.

api_version
str

A versão da API de serviço.

Métodos

close

Este método consiste em fechar os sockets abertos pelo cliente. Não é necessário utilizá-la ao utilizar com um gestor de contexto.

create_entity

Inserir entidade numa tabela.

create_table

Cria uma nova tabela na conta atual.

delete_entity

Elimina a entidade especificada numa tabela. Não será gerado nenhum erro se a entidade ou PartitionKey-RowKey o emparelhamento não for encontrado.

delete_table

Elimina a tabela na conta atual. Não será gerado nenhum erro se a tabela não existir

from_connection_string

Crie TableClient a partir de uma Cadeia de Ligação.

from_table_url

Um cliente para interagir com uma Tabela específica.

AzureSasCredential (azure-core) ou uma implementação TokenCredential a partir de azure-identity. credencial :p aramtype:

~azure.core.credentials.AzureNamedKeyCredential ou ~azure.core.credentials.AzureSasCredential ou None

get_entity

Obter uma única entidade numa tabela.

get_table_access_policy

Obtém detalhes sobre quaisquer políticas de acesso armazenadas especificadas na tabela que possam ser utilizadas com Assinaturas de Acesso Partilhado.

list_entities

Lista entidades numa tabela.

query_entities

Lista entidades numa tabela.

set_table_access_policy

Define as políticas de acesso armazenadas para a tabela que podem ser utilizadas com Assinaturas de Acesso Partilhado.

submit_transaction

Consolidar uma lista de operações como uma única transação.

Se alguma destas operações falhar, toda a transação será rejeitada.

update_entity

Atualizar entidade numa tabela.

upsert_entity

Atualizar/Intercalar ou Inserir entidade na tabela.

close

Este método consiste em fechar os sockets abertos pelo cliente. Não é necessário utilizá-la ao utilizar com um gestor de contexto.

close() -> None

create_entity

Inserir entidade numa tabela.

create_entity(entity: TableEntity | Mapping[str, Any], **kwargs) -> Dict[str, Any]

Parâmetros

entity
Union[TableEntity, Mapping[str, Any]]
Necessário

As propriedades da entidade de tabela.

Devoluções

Metadados da operação de mapeamento do dicionário devolvidos do serviço

Tipo de retorno

Exceções

Exemplos

Criar e adicionar uma entidade a uma Tabela


   try:
       resp = table_client.create_entity(entity=self.entity)
       print(resp)
   except ResourceExistsError:
       print("Entity already exists")

create_table

Cria uma nova tabela na conta atual.

create_table(**kwargs) -> TableItem

Devoluções

Um TableItem que representa a tabela criada.

Tipo de retorno

Exceções

Se a entidade já existir

Exemplos

Criar uma tabela a partir do objeto 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

Elimina a entidade especificada numa tabela. Não será gerado nenhum erro se a entidade ou PartitionKey-RowKey o emparelhamento não for encontrado.

delete_entity(partition_key: str, row_key: str, **kwargs) -> None

Parâmetros

partition_key
str
Necessário

A chave de partição da entidade.

row_key
str
Necessário

A chave de linha da entidade.

entity
Union[TableEntity, Mapping[str, str]]
Necessário

A entidade a eliminar

etag
str

Etag da entidade

match_condition
MatchConditions

A condição sob a qual realizar a operação. Os valores suportados incluem: MatchConditions.IfNotModified, MatchConditions.Incondicionalmente. O valor predefinido é Incondicionalmente.

Devoluções

Nenhuma

Exceções

Exemplos

Eliminar uma entidade de uma Tabela


   table_client.delete_entity(row_key=self.entity["RowKey"], partition_key=self.entity["PartitionKey"])
   print("Successfully deleted!")

delete_table

Elimina a tabela na conta atual. Não será gerado nenhum erro se a tabela não existir

delete_table(**kwargs) -> None

Devoluções

Nenhuma

Exceções

Exemplos

Eliminar uma tabela do objeto 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

Crie TableClient a partir de uma Cadeia de Ligação.

from_connection_string(conn_str: str, table_name: str, **kwargs) -> TableClient

Parâmetros

conn_str
str
Necessário

Uma cadeia de ligação para uma conta de Tabelas do Azure.

table_name
str
Necessário

O nome da tabela.

Devoluções

Um cliente de tabela.

Tipo de retorno

Exemplos

Autenticar um TableServiceClient a partir de um 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

Um cliente para interagir com uma Tabela específica.

AzureSasCredential (azure-core) ou uma implementação TokenCredential a partir de azure-identity. credencial :p aramtype:

~azure.core.credentials.AzureNamedKeyCredential ou ~azure.core.credentials.AzureSasCredential ou None

from_table_url(table_url: str, *, credential: AzureNamedKeyCredential | AzureSasCredential | None = None, **kwargs) -> TableClient

Parâmetros

table_url
Necessário

Devoluções

Um cliente de tabela.

Tipo de retorno

get_entity

Obter uma única entidade numa tabela.

get_entity(partition_key: str, row_key: str, **kwargs) -> TableEntity

Parâmetros

partition_key
str
Necessário

A chave de partição da entidade.

row_key
str
Necessário

A chave de linha da entidade.

select
str ou list[str]

Especifique as propriedades pretendidas de uma entidade a devolver.

Devoluções

Metadados da operação de mapeamento do dicionário devolvidos do serviço

Tipo de retorno

Exceções

Exemplos

Obter uma única entidade a partir de uma tabela


   # 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

Obtém detalhes sobre quaisquer políticas de acesso armazenadas especificadas na tabela que possam ser utilizadas com Assinaturas de Acesso Partilhado.

get_table_access_policy(**kwargs) -> Dict[str, TableAccessPolicy | None]

Devoluções

Dicionário de SignedIdentifiers

Tipo de retorno

Exceções

list_entities

Lista entidades numa tabela.

list_entities(**kwargs) -> ItemPaged[TableEntity]

Parâmetros

results_per_page
int

Número de entidades devolvidas por pedido de serviço.

select
str ou list[str]

Especifique as propriedades pretendidas de uma entidade a devolver.

Devoluções

Um iterador de TableEntity

Tipo de retorno

Exceções

Exemplos

Listar todas as entidades contidas numa tabela


   # Query the entities in the table
   entities = list(table.list_entities())
   for i, entity in enumerate(entities):
       print("Entity #{}: {}".format(entity, i))

query_entities

Lista entidades numa tabela.

query_entities(query_filter: str, **kwargs) -> ItemPaged[TableEntity]

Parâmetros

query_filter
str
Necessário

Especifique um filtro para devolver determinadas entidades. Para obter mais informações sobre a formatação de filtros, veja a documentação de exemplos.

results_per_page
int

Número de entidades devolvidas por pedido de serviço.

select
str ou list[str]

Especifique as propriedades pretendidas de uma entidade a devolver.

parameters
dict[str, Any]

Dicionário para formatar consulta com parâmetros adicionais definidos pelo utilizador

Devoluções

Um iterador de TableEntity

Tipo de retorno

Exceções

Exemplos

Entidades de consulta contidas numa tabela


   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

Define as políticas de acesso armazenadas para a tabela que podem ser utilizadas com Assinaturas de Acesso Partilhado.

set_table_access_policy(signed_identifiers: Dict[str, TableAccessPolicy | None], **kwargs) -> None

Parâmetros

signed_identifiers
dict[str, TableAccessPolicy] ou dict[str, None]
Necessário

Políticas de acesso a definir para a tabela

Devoluções

Nenhuma

Exceções

submit_transaction

Consolidar uma lista de operações como uma única transação.

Se alguma destas operações falhar, toda a transação será rejeitada.

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]]

Parâmetros

operations
Iterable[Tuple[str, TableEntity, Mapping[str, Any]]]
Necessário

A lista de operações a consolidar numa transação. Esta deve ser uma iterável de cadeias de identificação que contêm um nome de operação, a entidade na qual deve operar e, opcionalmente, um ditado de kwargs adicionais para essa operação. Por exemplo:


   - ('upsert', {'PartitionKey': 'A', 'RowKey': 'B'})
   - ('upsert', {'PartitionKey': 'A', 'RowKey': 'B'}, {'mode': UpdateMode.REPLACE})

Devoluções

Uma lista de mapeamentos com metadados de resposta para cada operação na transação.

Tipo de retorno

Exceções

Exemplos

Utilizar transações para enviar vários pedidos ao mesmo tempo


   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

Atualizar entidade numa tabela.

update_entity(entity: TableEntity | Mapping[str, Any], mode: UpdateMode = UpdateMode.MERGE, **kwargs) -> Dict[str, Any]

Parâmetros

entity
TableEntity ou dict[str, Any]
Necessário

As propriedades da entidade de tabela.

mode
UpdateMode
Necessário

Unir ou Substituir entidade

etag
str

Etag da entidade

match_condition
MatchConditions

A condição sob a qual realizar a operação. Os valores suportados incluem: MatchConditions.IfNotModified, MatchConditions.Incondicionalmente. O valor predefinido é Incondicionalmente.

Devoluções

Metadados da operação de mapeamento do dicionário devolvidos do serviço

Tipo de retorno

Exceções

Exemplos

Atualizar uma entidade que já está a sair numa Tabela


   # 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

Atualizar/Intercalar ou Inserir entidade na tabela.

upsert_entity(entity: TableEntity | Mapping[str, Any], mode: UpdateMode = UpdateMode.MERGE, **kwargs) -> Dict[str, Any]

Parâmetros

entity
TableEntity ou dict[str, Any]
Necessário

As propriedades da entidade de tabela.

mode
UpdateMode
Necessário

Unir ou Substituir entidade

Devoluções

Metadados da operação de mapeamento do dicionário devolvidos do serviço

Tipo de retorno

Exceções

Exemplos

Atualizar/intercalar ou inserir uma entidade numa tabela


   # 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))

Atributos

api_version

A versão da API de Armazenamento utilizada para pedidos.

Devoluções

A versão da API de Armazenamento.

url

O URL de ponto final completo para esta entidade, incluindo o token de SAS, se utilizado.

Este pode ser o ponto final primário ou o ponto final secundário, dependendo do atual <xref:azure.data.tables.location_mode>.

Devoluções

O URL de ponto final completo, incluindo o token de SAS, se utilizado.

Tipo de retorno

str