TableClient Classe
Un client per interagire con una tabella specifica in un account Tabelle di Azure.
Creare TableClient da una credenziale.
- Ereditarietà
-
azure.data.tables._base_client.TablesBaseClientTableClient
Costruttore
TableClient(endpoint: str, table_name: str, *, credential: AzureNamedKeyCredential | AzureSasCredential | TokenCredential | None = None, **kwargs)
Parametri
- credential
- AzureNamedKeyCredential oppure AzureSasCredential oppure TokenCredential oppure None
Credenziali con cui eseguire l'autenticazione. Questo è facoltativo se l'URL dell'account ha già un token di firma di accesso condiviso. Il valore può essere uno di AzureNamedKeyCredential (azure-core), AzureSasCredential (azure-core) o un'implementazione di TokenCredential da azure-identity.
- api_version
- str
Specifica la versione dell'operazione da usare per questa richiesta. Il valore predefinito è "2019-02-02".
Variabili
- account_name
- str
Nome dell'account Tables.
- table_name
- str
Nome della tabella.
- scheme
- str
Componente dello schema nell'URL completo dell'account Tabelle.
- url
- str
Endpoint di archiviazione.
- api_version
- str
Versione dell'API del servizio.
Metodi
close |
Questo metodo consiste nel chiudere i socket aperti dal client. Non è necessario usare quando si usa con un gestore di contesto. |
create_entity |
Inserire un'entità in una tabella. |
create_table |
Crea una nuova tabella nell'account corrente. |
delete_entity |
Elimina l'entità specificata in una tabella. Non verrà generato alcun errore se l'entità o PartitionKey-RowKey associazione non viene trovata. |
delete_table |
Elimina la tabella nell'account corrente. Nessun errore verrà generato se la tabella non esiste |
from_connection_string |
Creare TableClient da una stringa di connessione. |
from_table_url |
Un client per interagire con una tabella specifica. AzureSasCredential (azure-core) o un'implementazione di TokenCredential da azure-identity. credenziali :p aramtype: ~azure.core.credential.AzureNamedKeyCredential o ~azure.core.credential.AzureSasCredential o None |
get_entity |
Ottenere una singola entità in una tabella. |
get_table_access_policy |
Recupera i dettagli relativi ai criteri di accesso archiviati specificati nella tabella che possono essere usati con firme di accesso condiviso. |
list_entities |
Elenca le entità in una tabella. |
query_entities |
Elenca le entità in una tabella. |
set_table_access_policy |
Imposta i criteri di accesso archiviati per la tabella che può essere usata con firme di accesso condiviso. |
submit_transaction |
Eseguire il commit di un elenco di operazioni come singola transazione. Se una di queste operazioni ha esito negativo, l'intera transazione verrà rifiutata. |
update_entity |
Aggiornare l'entità in una tabella. |
upsert_entity |
Aggiornare/unire o inserire entità nella tabella. |
close
Questo metodo consiste nel chiudere i socket aperti dal client. Non è necessario usare quando si usa con un gestore di contesto.
close() -> None
create_entity
Inserire un'entità in una tabella.
create_entity(entity: TableEntity | Mapping[str, Any], **kwargs) -> Dict[str, Any]
Parametri
Restituisce
Metadati delle operazioni di mapping del dizionario restituiti dal servizio
Tipo restituito
Eccezioni
Esempio
Creazione e aggiunta di un'entità a una tabella
try:
resp = table_client.create_entity(entity=self.entity)
print(resp)
except ResourceExistsError:
print("Entity already exists")
create_table
Crea una nuova tabella nell'account corrente.
create_table(**kwargs) -> TableItem
Restituisce
Oggetto TableItem che rappresenta la tabella creata.
Tipo restituito
Eccezioni
Se l'entità esiste già
Esempio
Creazione di una tabella dall'oggetto 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 l'entità specificata in una tabella. Non verrà generato alcun errore se l'entità o PartitionKey-RowKey associazione non viene trovata.
delete_entity(partition_key: str, row_key: str, **kwargs) -> None
Parametri
- etag
- str
Etag dell'entità
- match_condition
- MatchConditions
Condizione in base alla quale eseguire l'operazione. I valori supportati includono: MatchConditions.IfNotModified, MatchConditions.Unconditionally. Il valore predefinito è Incondizionato.
Restituisce
Nessuno
Eccezioni
Esempio
Eliminazione di un'entità di una tabella
table_client.delete_entity(row_key=self.entity["RowKey"], partition_key=self.entity["PartitionKey"])
print("Successfully deleted!")
delete_table
Elimina la tabella nell'account corrente. Nessun errore verrà generato se la tabella non esiste
delete_table(**kwargs) -> None
Restituisce
Nessuno
Eccezioni
Esempio
Eliminazione di una tabella dall'oggetto 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
Creare TableClient da una stringa di connessione.
from_connection_string(conn_str: str, table_name: str, **kwargs) -> TableClient
Parametri
Restituisce
Client di tabella.
Tipo restituito
Esempio
Autenticazione di un oggetto TableServiceClient da un 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
Un client per interagire con una tabella specifica.
AzureSasCredential (azure-core) o un'implementazione di TokenCredential da azure-identity. credenziali :p aramtype:
~azure.core.credential.AzureNamedKeyCredential o ~azure.core.credential.AzureSasCredential o None
from_table_url(table_url: str, *, credential: AzureNamedKeyCredential | AzureSasCredential | None = None, **kwargs) -> TableClient
Parametri
- table_url
Restituisce
Client di tabella.
Tipo restituito
get_entity
Ottenere una singola entità in una tabella.
get_entity(partition_key: str, row_key: str, **kwargs) -> TableEntity
Parametri
Restituisce
Metadati delle operazioni di mapping del dizionario restituiti dal servizio
Tipo restituito
Eccezioni
Esempio
Ottenere una singola entità da una tabella
# 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 i dettagli relativi ai criteri di accesso archiviati specificati nella tabella che possono essere usati con firme di accesso condiviso.
get_table_access_policy(**kwargs) -> Dict[str, TableAccessPolicy | None]
Restituisce
Dizionario di SignedIdentifiers
Tipo restituito
Eccezioni
list_entities
Elenca le entità in una tabella.
list_entities(**kwargs) -> ItemPaged[TableEntity]
Parametri
- results_per_page
- int
Numero di entità restituite per richiesta di servizio.
Restituisce
Iteratore di TableEntity
Tipo restituito
Eccezioni
Esempio
Elencare tutte le entità contenute all'interno di una tabella
# Query the entities in the table
entities = list(table.list_entities())
for i, entity in enumerate(entities):
print("Entity #{}: {}".format(entity, i))
query_entities
Elenca le entità in una tabella.
query_entities(query_filter: str, **kwargs) -> ItemPaged[TableEntity]
Parametri
- query_filter
- str
Specificare un filtro per restituire determinate entità. Per altre informazioni sulla formattazione dei filtri, vedere la documentazione degli esempi.
- results_per_page
- int
Numero di entità restituite per richiesta di servizio.
Dizionario per la formattazione della query con parametri aggiuntivi definiti dall'utente
Restituisce
Iteratore di TableEntity
Tipo restituito
Eccezioni
Esempio
Entità di query contenute all'interno di una tabella
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
Imposta i criteri di accesso archiviati per la tabella che può essere usata con firme di accesso condiviso.
set_table_access_policy(signed_identifiers: Dict[str, TableAccessPolicy | None], **kwargs) -> None
Parametri
Criteri di accesso da impostare per la tabella
Restituisce
Nessuno
Eccezioni
submit_transaction
Eseguire il commit di un elenco di operazioni come singola transazione.
Se una di queste operazioni ha esito negativo, l'intera transazione verrà rifiutata.
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]]
Parametri
Elenco delle operazioni da eseguire in una transazione. Questo deve essere un iterabile di tupla contenente un nome di operazione, l'entità su cui operare e facoltativamente, un dict di kwargs aggiuntivo per tale operazione. Ad esempio:
- ('upsert', {'PartitionKey': 'A', 'RowKey': 'B'})
- ('upsert', {'PartitionKey': 'A', 'RowKey': 'B'}, {'mode': UpdateMode.REPLACE})
Restituisce
Elenco di mapping con metadati di risposta per ogni operazione nella transazione.
Tipo restituito
Eccezioni
Esempio
Uso delle transazioni per inviare più richieste contemporaneamente
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
Aggiornare l'entità in una tabella.
update_entity(entity: TableEntity | Mapping[str, Any], mode: UpdateMode = UpdateMode.MERGE, **kwargs) -> Dict[str, Any]
Parametri
- etag
- str
Etag dell'entità
- match_condition
- MatchConditions
Condizione in base alla quale eseguire l'operazione. I valori supportati includono: MatchConditions.IfNotModified, MatchConditions.Unconditionally. Il valore predefinito è Incondizionato.
Restituisce
Metadati delle operazioni di mapping del dizionario restituiti dal servizio
Tipo restituito
Eccezioni
Esempio
Aggiornamento di un'entità già in uscita in una tabella
# 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
Aggiornare/unire o inserire entità nella tabella.
upsert_entity(entity: TableEntity | Mapping[str, Any], mode: UpdateMode = UpdateMode.MERGE, **kwargs) -> Dict[str, Any]
Parametri
Restituisce
Metadati delle operazioni di mapping del dizionario restituiti dal servizio
Tipo restituito
Eccezioni
Esempio
Aggiornare/unire o inserire un'entità in una tabella
# 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))
Attributi
api_version
Versione dell'API di archiviazione usata per le richieste.
Restituisce
Versione dell'API di archiviazione.
url
URL completo dell'endpoint per questa entità, incluso il token di firma di accesso condiviso se usato.
Questo potrebbe essere l'endpoint primario o l'endpoint secondario a seconda dell'oggetto corrente <xref:azure.data.tables.location_mode>.
Restituisce
URL dell'endpoint completo, incluso il token di firma di accesso condiviso se usato.
Tipo restituito
Azure SDK for Python