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.AsyncTablesBaseClientTableClient
Construtor
TableClient(endpoint: str, table_name: str, *, credential: AzureSasCredential | AzureNamedKeyCredential | AsyncTokenCredential | None = None, **kwargs)
Parâmetros
- 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
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
- 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
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
- 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
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.
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
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.
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]
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]]]]
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
- 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
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
Azure SDK for Python