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