Partager via


TableClient Classe

Client pour interagir avec une table spécifique dans un compte Tables Azure.

Créez TableClient à partir d’informations d’identification.

AzureSasCredential (azure-core) ou une implémentation AsyncTokenCredential d’azure-identity. informations d’identification :p aramtype :

~azure.core.credentials.AzureNamedKeyCredential ou ~azure.core.credentials.AzureSasCredential ou ~azure.core.credentials_async. AsyncTokenCredential ou None

Héritage
azure.data.tables.aio._base_client_async.AsyncTablesBaseClient
TableClient

Constructeur

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

Paramètres

endpoint
str
Obligatoire

URL d’un compte Tables Azure.

table_name
str
Obligatoire

Nom de la table.

credential

Informations d’identification avec lesquelles s’authentifier. Cela est facultatif si l’URL du compte a déjà un jeton SAS. La valeur peut être l’une d’AzureNamedKeyCredential (azure-core),

api_version
str

Spécifie la version de l'opération à utiliser pour cette demande. La valeur par défaut est « 2019-02-02 ». Notez que le remplacement de cette valeur par défaut peut entraîner un comportement non pris en charge.

Variables

account_name
str

Nom du compte Tables.

table_name
str

Nom de la table.

scheme
str

Composant de schéma dans l’URL complète du compte Tables.

url
str

Point de terminaison de stockage.

api_version
str

Version de l’API de service.

Méthodes

close

Cette méthode consiste à fermer les sockets ouverts par le client. Il n’est pas nécessaire de l’utiliser lors de l’utilisation avec un gestionnaire de contexte.

create_entity

Insérer une entité dans une table.

create_table

Crée une table sous le compte donné.

delete_entity

Supprime l’entité spécifiée dans une table. Aucune erreur n’est générée si l’entité ou PartitionKey-RowKey appairage est introuvable.

delete_table

Supprime la table sous le compte actuel. Aucune erreur ne sera générée si le nom de table donné est introuvable.

from_connection_string

Créez TableClient à partir d’une chaîne de connexion.

from_table_url

Client pour interagir avec une table spécifique.

get_entity

Obtenir une seule entité dans une table.

get_table_access_policy

Récupère des détails sur les stratégies d’accès stockées spécifiées sur la table qui peuvent être utilisées avec les signatures d’accès partagé.

list_entities

Répertorie les entités d’une table.

query_entities

Répertorie les entités d’une table.

set_table_access_policy

Définit les stratégies d’accès stockées pour la table qui peut être utilisée avec les signatures d’accès partagé.

submit_transaction

Validez une liste d’opérations en tant que transaction unique.

Si l’une de ces opérations échoue, l’intégralité de la transaction est rejetée.

update_entity

Mettre à jour l’entité dans une table.

upsert_entity

Mettre à jour/fusionner ou insérer une entité dans une table.

close

Cette méthode consiste à fermer les sockets ouverts par le client. Il n’est pas nécessaire de l’utiliser lors de l’utilisation avec un gestionnaire de contexte.

async close() -> None

create_entity

Insérer une entité dans une table.

async create_entity(entity: TableEntity | Mapping[str, Any], **kwargs) -> Mapping[str, Any]

Paramètres

entity
TableEntity ou Mapping
Obligatoire

Propriétés de l’entité de table.

Retours

Métadonnées de l’opération de mappage de dictionnaire retournées par le service

Type de retour

Exceptions

Si l’entité existe déjà

Exemples

Ajout d’une entité à une table


   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

Crée une table sous le compte donné.

async create_table(**kwargs) -> TableItem

Retours

TableItem représentant la table créée.

Type de retour

Exceptions

Si l’entité existe déjà

delete_entity

Supprime l’entité spécifiée dans une table. Aucune erreur n’est générée si l’entité ou PartitionKey-RowKey appairage est introuvable.

async delete_entity(partition_key: str, row_key: str, **kwargs) -> None

Paramètres

partition_key
str
Obligatoire

Clé de partition de l’entité.

row_key
str
Obligatoire

Clé de ligne de l’entité.

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

Entité à supprimer

etag
str

Etag de l’entité

match_condition
MatchConditions

Condition dans laquelle effectuer l’opération. Les valeurs prises en charge sont les suivantes : MatchConditions.IfNotModified, MatchConditions.Sans condition. La valeur par défaut est Inconditionnellement.

Retours

Aucun

Exceptions

Exemples

Ajout d’une entité à une table


   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

Supprime la table sous le compte actuel. Aucune erreur ne sera générée si le nom de table donné est introuvable.

async delete_table(**kwargs) -> None

Retours

Aucun

Exceptions

Exemples

Suppression d’une table de l’objet 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

Créez TableClient à partir d’une chaîne de connexion.

from_connection_string(conn_str: str, table_name: str, **kwargs) -> TableClient

Paramètres

conn_str
str
Obligatoire

Chaîne de connexion à un compte Tables Azure.

table_name
str
Obligatoire

Nom de la table.

Retours

Client de table.

Type de retour

Exemples

Création du TableClient à partir d’une chaîne de connexion.


   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

Client pour interagir avec une table spécifique.

from_table_url(table_url: str, *, credential: AzureNamedKeyCredential | AzureSasCredential | None = None, **kwargs) -> TableClient

Paramètres

table_url
str
Obligatoire

URI complet de la table, y compris le jeton SAS s’il est utilisé.

credential
AzureNamedKeyCredential ou AzureSasCredential ou None

Informations d’identification avec lesquelles s’authentifier. Cela est facultatif si l’URL de la table a déjà un jeton SAS.

Retours

Client de table.

Type de retour

get_entity

Obtenir une seule entité dans une table.

async get_entity(partition_key: str, row_key: str, **kwargs) -> TableEntity

Paramètres

partition_key
str
Obligatoire

Clé de partition de l’entité.

row_key
str
Obligatoire

Clé de ligne de l’entité.

select
str ou list[str]

Spécifiez les propriétés souhaitées d’une entité à retourner.

Retours

Métadonnées de l’opération de mappage de dictionnaire retournées par le service

Type de retour

Exceptions

Exemples

Obtention d’une entité à partir de PartitionKey et 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

Récupère des détails sur les stratégies d’accès stockées spécifiées sur la table qui peuvent être utilisées avec les signatures d’accès partagé.

async get_table_access_policy(**kwargs) -> Mapping[str, TableAccessPolicy | None]

Retours

Dictionnaire de SignedIdentifiers

Type de retour

Exceptions

list_entities

Répertorie les entités d’une table.

list_entities(**kwargs) -> AsyncItemPaged[TableEntity]

Paramètres

results_per_page
int

Nombre d’entités retournées par demande de service.

select
str ou list[str]

Spécifiez les propriétés souhaitées d’une entité à retourner.

Retours

Itérateur asynchrone de TableEntity

Type de retour

Exceptions

Exemples

Interrogation d’entités à partir d’un 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

Répertorie les entités d’une table.

query_entities(query_filter: str, **kwargs) -> AsyncItemPaged[TableEntity]

Paramètres

query_filter
str
Obligatoire

Spécifiez un filtre pour retourner certaines entités. Pour plus d’informations sur la mise en forme des filtres, consultez la documentation des exemples.

results_per_page
int

Nombre d’entités retournées par demande de service.

select
str ou list[str]

Spécifiez les propriétés souhaitées d’une entité à retourner.

parameters
dict[str, Any]

Dictionnaire pour la mise en forme de la requête avec des paramètres supplémentaires définis par l’utilisateur

Retours

Itérateur asynchrone de TableEntity

Type de retour

Exceptions

Exemples

Interrogation d’entités à partir d’un 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

Définit les stratégies d’accès stockées pour la table qui peut être utilisée avec les signatures d’accès partagé.

async set_table_access_policy(signed_identifiers: Mapping[str, TableAccessPolicy | None], **kwargs) -> None

Paramètres

signed_identifiers
dict[str, TableAccessPolicy]
Obligatoire

Stratégies d’accès à définir pour la table

Retours

Aucun

Exceptions

submit_transaction

Validez une liste d’opérations en tant que transaction unique.

Si l’une de ces opérations échoue, l’intégralité de la transaction est rejetée.

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]]

Paramètres

operations
Union[Iterable[Tuple[str, <xref:Entity>, Mapping[str, Any]]],AsyncIterable[Tuple[str, <xref:Entity>, Mapping[str, Any]]]]
Obligatoire

Liste des opérations à valider dans une transaction. Il doit s’agir d’un itérable (ou itérable asynchrone) de tuples contenant un nom d’opération, l’entité sur laquelle opérer et éventuellement un dictée de kwargs supplémentaires pour cette opération. Par exemple :


   - ('upsert', {'PartitionKey': 'A', 'RowKey': 'B'})
   - ('upsert', {'PartitionKey': 'A', 'RowKey': 'B'}, {'mode': UpdateMode.REPLACE})

Retours

Liste des mappages avec les métadonnées de réponse pour chaque opération dans la transaction.

Type de retour

Exceptions

Exemples

Utilisation de transactions pour envoyer plusieurs demandes à la fois


   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

Mettre à jour l’entité dans une table.

async update_entity(entity: TableEntity | Mapping[str, Any], mode: str | UpdateMode = UpdateMode.MERGE, **kwargs) -> Mapping[str, Any]

Paramètres

entity
TableEntity ou dict[str, Any]
Obligatoire

Propriétés de l’entité de table.

mode
UpdateMode
Obligatoire

Fusionner ou remplacer une entité

etag
str

Etag de l’entité

match_condition
<xref:azure.core.MatchCondition>

Condition dans laquelle effectuer l’opération. Les valeurs prises en charge sont les suivantes : MatchConditions.IfNotModified, MatchConditions.Sans condition. La valeur par défaut est Inconditionnellement.

Retours

Dictionnaire des métadonnées d’opération retournées par le service

Type de retour

Exceptions

Exemples

Interrogation d’entités à partir d’un 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

Mettre à jour/fusionner ou insérer une entité dans une table.

async upsert_entity(entity: TableEntity | Mapping[str, Any], mode: str | UpdateMode = UpdateMode.MERGE, **kwargs) -> Mapping[str, Any]

Paramètres

entity
TableEntity ou dict[str, Any]
Obligatoire

Propriétés de l’entité table.

mode
UpdateMode
Obligatoire

Fusionner ou remplacer une entité

Retours

Métadonnées de l’opération de mappage de dictionnaire retournées par le service

Type de retour

Exceptions

Exemples

Mettre à jour/fusionner ou insérer une entité dans une table


   # 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))

Attributs

api_version

Version de l’API de stockage utilisée pour les requêtes.

Retours

Version de l’API de stockage.

url

URL complète du point de terminaison de cette entité, y compris le jeton SAS s’il est utilisé.

Il peut s’agir du point de terminaison principal ou du point de terminaison secondaire en fonction du actuel <xref:azure.data.tables.aio.location_mode>.

Retours

URL complète du point de terminaison, y compris le jeton SAS, si elle est utilisée.

Type de retour

str