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.AsyncTablesBaseClientTableClient
Constructeur
TableClient(endpoint: str, table_name: str, *, credential: AzureSasCredential | AzureNamedKeyCredential | AsyncTokenCredential | None = None, **kwargs)
Paramètres
- 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
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
- 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
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
- 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
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.
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
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.
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]
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]]]]
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
- 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
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
Azure SDK for Python