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.

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

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

Herança
azure.data.tables.aio._base_client_async.AsyncTablesBaseClient
TableClient

Construtor

TableClient(endpoint: str, table_name: str, *, credential: AzureSasCredential | AzureNamedKeyCredential | AsyncTokenCredential | 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

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

api_version
str

Especifica a versão da operação a ser usada para esta solicitação. O valor padrão é "2019-02-02". Observe que substituir esse valor padrão pode resultar em um comportamento sem suporte.

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 fornecida.

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 o nome da tabela fornecido não for encontrado.

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.

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.

async close() -> None

create_entity

Inserir entidade em uma tabela.

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

Parâmetros

entity
TableEntity ou Mapping
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

Se a entidade já existir

Exemplos

Adicionando uma entidade a uma tabela


   async with table_client:
       try:
           await table_client.create_table()
       except HttpResponseError:
           print("Table already exists")

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

create_table

Cria uma nova tabela na conta fornecida.

async create_table(**kwargs) -> TableItem

Retornos

Um TableItem que representa a tabela criada.

Tipo de retorno

Exceções

Se a entidade já existir

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.

async 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

Adicionando uma entidade a uma tabela


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

       await table_client.delete_entity(row_key=self.entity["RowKey"], partition_key=self.entity["PartitionKey"])  # type: ignore[call-overload]
       print("Successfully deleted!")

delete_table

Exclui a tabela na conta atual. Nenhum erro será gerado se o nome da tabela fornecido não for encontrado.

async delete_table(**kwargs) -> None

Retornos

Nenhum

Exceções

Exemplos

Excluindo uma tabela do objeto TableClient.


   async with TableClient.from_connection_string(
       conn_str=self.connection_string, table_name=self.table_name
   ) as table_client:
       await 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

Criando o TableClient de uma cadeia de conexão.


   from azure.data.tables.aio import TableClient

   async 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.

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

Parâmetros

table_url
str
Obrigatório

O URI completo para a tabela, incluindo o token SAS, se usado.

credential
AzureNamedKeyCredential ou AzureSasCredential ou None

As credenciais com as quais autenticar. Isso será opcional se a URL da tabela já tiver um token SAS.

Retornos

Um cliente de tabela.

Tipo de retorno

get_entity

Obter uma única entidade em uma tabela.

async 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

Obtendo uma entidade de PartitionKey e RowKey


   # Get Entity by partition and row key
   got_entity = await table.get_entity(
       partition_key=my_entity["PartitionKey"], row_key=my_entity["RowKey"]  # type: ignore[arg-type]
   )
   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.

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

Retornos

Dicionário de SignedIdentifiers

Tipo de retorno

Exceções

list_entities

Lista entidades em uma tabela.

list_entities(**kwargs) -> AsyncItemPaged[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 assíncrono de TableEntity

Tipo de retorno

Exceções

Exemplos

Consultando entidades de um TableClient


   # Query the entities in the table
   i = 0
   async for entity in table.list_entities():
       print("Entity #{}: {}".format(i, entity))
       i += 1

query_entities

Lista entidades em uma tabela.

query_entities(query_filter: str, **kwargs) -> AsyncItemPaged[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 assíncrono de TableEntity

Tipo de retorno

Exceções

Exemplos

Consultando entidades de um TableClient


   async 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
           )
           async 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
           )
           async 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
           )
           async 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
           )
           async 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.

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

Parâmetros

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

async submit_transaction(operations: Iterable[Tuple[TransactionOperation | str, TableEntity | Mapping[str, Any]] | Tuple[TransactionOperation | str, TableEntity | Mapping[str, Any], Mapping[str, Any]]] | AsyncIterable[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
Union[Iterable[Tuple[str, <xref:Entity>, Mapping[str, Any]]],AsyncIterable[Tuple[str, <xref:Entity>, Mapping[str, Any]]]]
Obrigatório

A lista de operações a serem confirmadas em uma transação. Isso deve ser um iterável (ou iterável assíncrono) 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.aio import TableClient
   from azure.data.tables import 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:
       await self.table_client.create_table()
       print("Created table")
   except ResourceExistsError:
       print("Table already exists")

   await self._create_entities()

   operations = [
       ("create", self.entity1),
       ("delete", self.entity2),
       ("upsert", self.entity3),
       ("update", self.entity4, {"mode": "replace"}),
   ]
   try:
       await self.table_client.submit_transaction(operations)  # type: ignore[arg-type]
   except TableTransactionError as e:
       print("There was an error with the transaction operation")
       print("Error: {}".format(e))

update_entity

Atualizar entidade em uma tabela.

async update_entity(entity: TableEntity | Mapping[str, Any], mode: str | UpdateMode = UpdateMode.MERGE, **kwargs) -> Mapping[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
<xref:azure.core.MatchCondition>

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

Dicionário de metadados de operação retornados do serviço

Tipo de retorno

Exceções

Exemplos

Consultando entidades de um TableClient


   # Update the entity
   created["text"] = "NewMarker"
   await table.update_entity(mode=UpdateMode.REPLACE, entity=created)

   # Get the replaced entity
   replaced = await table.get_entity(partition_key=created["PartitionKey"], row_key=created["RowKey"])
   print("Replaced entity: {}".format(replaced))

   # Merge the entity
   replaced["color"] = "Blue"
   await table.update_entity(mode=UpdateMode.MERGE, entity=replaced)

   # Get the merged entity
   merged = await 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.

async upsert_entity(entity: TableEntity | Mapping[str, Any], mode: str | UpdateMode = UpdateMode.MERGE, **kwargs) -> Mapping[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 = await table.upsert_entity(mode=UpdateMode.REPLACE, entity=entity1)
   print("Inserted entity: {}".format(insert_entity))

   created["text"] = "NewMarker"
   merged_entity = await 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.aio.location_mode>.

Retornos

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

Tipo de retorno

str