Compartilhar via


TableClient Classe

Um cliente para interagir com uma tabela específica em uma conta de Tabelas do Azure.

Crie 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
Obrigatório

Uma URL para uma conta de Tabelas do Azure.

table_name
str
Obrigatório

O nome da tabela.

credential
AzureNamedKeyCredential ou AzureSasCredential ou TokenCredential ou None

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

api_version
str

Especifica a versão da operação a ser usada para esta solicitação. O valor padrão é "2019-02-02".

Variáveis

account_name
str

O nome da conta tabelas.

table_name
str

O nome da tabela.

scheme
str

O componente de esquema na URL completa para a conta Tabelas.

url
str

O ponto de extremidade de armazenamento.

api_version
str

A versão da API de serviço.

Métodos

close

Esse método é para fechar os soquetes abertos pelo cliente. Ele não precisa ser usado ao usar com um gerenciador de contexto.

create_entity

Inserir entidade em uma tabela.

create_table

Cria uma nova tabela na conta atual.

delete_entity

Exclui a entidade especificada em uma tabela. Nenhum erro será gerado se a entidade ou o emparelhamento PartitionKey-RowKey não for encontrado.

delete_table

Exclui a tabela na conta atual. Nenhum erro será gerado se a tabela não existir

from_connection_string

Crie TableClient a partir de uma cadeia de conexão.

from_table_url

Um cliente para interagir com uma Tabela específica.

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

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

get_entity

Obter uma única entidade em uma tabela.

get_table_access_policy

Recupera detalhes sobre as políticas de acesso armazenadas especificadas na tabela que podem ser usadas com Assinaturas de Acesso Compartilhado.

list_entities

Lista entidades em uma tabela.

query_entities

Lista entidades em uma tabela.

set_table_access_policy

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

submit_transaction

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

Se qualquer uma dessas operações falhar, toda a transação será rejeitada.

update_entity

Atualizar entidade em uma tabela.

upsert_entity

Atualizar/Mesclar ou Inserir entidade na tabela.

close

Esse método é para fechar os soquetes abertos pelo cliente. Ele não precisa ser usado ao usar com um gerenciador de contexto.

close() -> None

create_entity

Inserir entidade em uma tabela.

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

Parâmetros

entity
Union[TableEntity, Mapping[str, Any]]
Obrigatório

As propriedades da entidade de tabela.

Retornos

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

Tipo de retorno

Exceções

Exemplos

Criando e adicionando 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

Retornos

Um TableItem que representa a tabela criada.

Tipo de retorno

Exceções

Se a entidade já existir

Exemplos

Criando uma tabela 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

Exclui a entidade especificada em uma tabela. Nenhum erro será gerado se a entidade ou o emparelhamento PartitionKey-RowKey não for encontrado.

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

Parâmetros

partition_key
str
Obrigatório

A chave de partição da entidade.

row_key
str
Obrigatório

A chave de linha da entidade.

entity
Union[TableEntity, Mapping[str, str]]
Obrigatório

A entidade a ser excluída

etag
str

Etag da entidade

match_condition
MatchConditions

A condição sob a qual executar a operação. Os valores com suporte incluem: MatchConditions.IfNotModified, MatchConditions.Incondicionally. O valor padrão é Incondicionalmente.

Retornos

Nenhum

Exceções

Exemplos

Excluindo uma entidade de uma tabela


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

delete_table

Exclui a tabela na conta atual. Nenhum erro será gerado se a tabela não existir

delete_table(**kwargs) -> None

Retornos

Nenhum

Exceções

Exemplos

Excluindo 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 conexão.

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

Parâmetros

conn_str
str
Obrigatório

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

table_name
str
Obrigatório

O nome da tabela.

Retornos

Um cliente de tabela.

Tipo de retorno

Exemplos

Autenticando um TableServiceClient 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 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
Obrigatório

Retornos

Um cliente de tabela.

Tipo de retorno

get_entity

Obter uma única entidade em uma tabela.

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

Parâmetros

partition_key
str
Obrigatório

A chave de partição da entidade.

row_key
str
Obrigatório

A chave de linha da entidade.

select
str ou list[str]

Especifique as propriedades desejadas de uma entidade a ser retornada.

Retornos

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

Tipo de retorno

Exceções

Exemplos

Obter uma única entidade 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

Recupera detalhes sobre as políticas de acesso armazenadas especificadas na tabela que podem ser usadas com Assinaturas de Acesso Compartilhado.

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

Retornos

Dicionário de SignedIdentifiers

Tipo de retorno

Exceções

list_entities

Lista entidades em uma tabela.

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

Parâmetros

results_per_page
int

Número de entidades retornadas por solicitação de serviço.

select
str ou list[str]

Especifique as propriedades desejadas de uma entidade a ser retornada.

Retornos

Um iterador de TableEntity

Tipo de retorno

Exceções

Exemplos

Listar todas as entidades mantidas em uma 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 em uma tabela.

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

Parâmetros

query_filter
str
Obrigatório

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

results_per_page
int

Número de entidades retornadas por solicitação de serviço.

select
str ou list[str]

Especifique as propriedades desejadas de uma entidade a ser retornada.

parameters
dict[str, Any]

Dicionário para formatação de consulta com parâmetros adicionais definidos pelo usuário

Retornos

Um iterador de TableEntity

Tipo de retorno

Exceções

Exemplos

Consultar entidades mantidas em uma 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 usadas com Assinaturas de Acesso Compartilhado.

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

Parâmetros

signed_identifiers
dict[str, TableAccessPolicy] ou dict[str, None]
Obrigatório

Políticas de acesso a serem definidas para a tabela

Retornos

Nenhum

Exceções

submit_transaction

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

Se qualquer uma dessas 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]]]
Obrigatório

A lista de operações a serem confirmadas em uma transação. Isso deve ser um iterável de tuplas que contêm um nome de operação, a entidade na qual operar e, opcionalmente, um dict de kwargs adicionais para essa operação. Por exemplo:


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

Retornos

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

Tipo de retorno

Exceções

Exemplos

Usando transações para enviar várias solicitações de uma só vez


   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 em uma tabela.

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

Parâmetros

entity
TableEntity ou dict[str, Any]
Obrigatório

As propriedades da entidade de tabela.

mode
UpdateMode
Obrigatório

Mesclar ou substituir entidade

etag
str

Etag da entidade

match_condition
MatchConditions

A condição sob a qual executar a operação. Os valores com suporte incluem: MatchConditions.IfNotModified, MatchConditions.Incondicionally. O valor padrão é Incondicionalmente.

Retornos

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

Tipo de retorno

Exceções

Exemplos

Atualizando uma entidade que já está saindo em uma 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/Mesclar 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]
Obrigatório

As propriedades da entidade de tabela.

mode
UpdateMode
Obrigatório

Mesclar ou substituir entidade

Retornos

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

Tipo de retorno

Exceções

Exemplos

Atualizar/mesclar ou inserir uma entidade em uma 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 usada para solicitações.

Retornos

A versão da API de Armazenamento.

url

A URL completa do ponto de extremidade para essa entidade, incluindo o token SAS, se usado.

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

Retornos

A URL completa do ponto de extremidade, incluindo o token SAS, se usado.

Tipo de retorno

str