Condividi tramite


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.TablesBaseClient
TableClient

Costruttore

TableClient(endpoint: str, table_name: str, *, credential: AzureNamedKeyCredential | AzureSasCredential | TokenCredential | None = None, **kwargs)

Parametri

endpoint
str
Necessario

URL di un account Tabelle di Azure.

table_name
str
Necessario

Il nome della tabella.

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

entity
Union[TableEntity, Mapping[str, Any]]
Necessario

Proprietà per l'entità tabella.

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

partition_key
str
Necessario

Chiave di partizione dell'entità.

row_key
str
Necessario

Chiave di riga dell'entità.

entity
Union[TableEntity, Mapping[str, str]]
Necessario

Entità da eliminare

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

conn_str
str
Necessario

Stringa di connessione a un account Tabelle di Azure.

table_name
str
Necessario

Il nome della tabella.

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
Necessario

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

partition_key
str
Necessario

Chiave di partizione dell'entità.

row_key
str
Necessario

Chiave di riga dell'entità.

select
str oppure list[str]

Specificare le proprietà desiderate di un'entità da restituire.

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.

select
str oppure list[str]

Specificare le proprietà desiderate di un'entità da restituire.

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
Necessario

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.

select
str oppure list[str]

Specificare le proprietà desiderate di un'entità da restituire.

parameters
dict[str, Any]

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

signed_identifiers
dict[str, TableAccessPolicy] oppure dict[str, None]
Necessario

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

operations
Iterable[Tuple[str, TableEntity, Mapping[str, Any]]]
Necessario

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

entity
TableEntity oppure dict[str, Any]
Necessario

Proprietà per l'entità tabella.

mode
UpdateMode
Necessario

Unione o sostituzione dell'entità

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

entity
TableEntity oppure dict[str, Any]
Necessario

Proprietà per l'entità tabella.

mode
UpdateMode
Necessario

Unione o sostituzione dell'entità

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

str