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.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 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
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
- 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
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
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
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.
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
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.
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
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
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
- 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
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
Azure SDK for Python
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários