TableClient Clase
Un cliente para interactuar con una tabla específica en una cuenta de Azure Tables.
Cree TableClient a partir de una credencial.
- Herencia
-
azure.data.tables._base_client.TablesBaseClientTableClient
Constructor
TableClient(endpoint: str, table_name: str, *, credential: AzureNamedKeyCredential | AzureSasCredential | TokenCredential | None = None, **kwargs)
Parámetros
- credential
- AzureNamedKeyCredential o AzureSasCredential o TokenCredential o None
Credenciales con las que se va a autenticar. Esto es opcional si la dirección URL de la cuenta ya tiene un token de SAS. El valor puede ser una de AzureNamedKeyCredential (azure-core), AzureSasCredential (azure-core) o una implementación de TokenCredential de azure-identity.
- api_version
- str
Especifica la versión de la operación que se utiliza para esta solicitud. El valor predeterminado es "2019-02-02".
Variables
- account_name
- str
Nombre de la cuenta tables.
- table_name
- str
Nombre de la tabla.
- scheme
- str
Componente de esquema en la dirección URL completa de la cuenta De tablas.
- url
- str
Punto de conexión de almacenamiento.
- api_version
- str
La versión de la API del servicio.
Métodos
close |
Este método consiste en cerrar los sockets abiertos por el cliente. No es necesario usarse cuando se usa con un administrador de contextos. |
create_entity |
Insertar entidad en una tabla. |
create_table |
Crea una nueva tabla en la cuenta actual. |
delete_entity |
Elimina la entidad especificada en una tabla. No se producirá ningún error si no se encuentra la entidad o el emparejamiento PartitionKey-RowKey. |
delete_table |
Elimina la tabla de la cuenta actual. No se generará ningún error si la tabla no existe |
from_connection_string |
Cree TableClient a partir de una cadena de conexión. |
from_table_url |
Un cliente para interactuar con una tabla específica. AzureSasCredential (azure-core) o una implementación de TokenCredential de azure-identity. credencial :p aramtype: ~azure.core.credentials.AzureNamedKeyCredential o ~azure.core.credentials.AzureSasCredential o None |
get_entity |
Obtenga una sola entidad en una tabla. |
get_table_access_policy |
Recupera detalles sobre las directivas de acceso almacenadas especificadas en la tabla que se pueden usar con firmas de acceso compartido. |
list_entities |
Enumera las entidades de una tabla. |
query_entities |
Enumera las entidades de una tabla. |
set_table_access_policy |
Establece directivas de acceso almacenadas para la tabla que se pueden usar con firmas de acceso compartido. |
submit_transaction |
Confirme una lista de operaciones como una sola transacción. Si se produce un error en alguna de estas operaciones, se rechazará toda la transacción. |
update_entity |
Actualice la entidad en una tabla. |
upsert_entity |
Actualizar o combinar o insertar entidad en la tabla. |
close
Este método consiste en cerrar los sockets abiertos por el cliente. No es necesario usarse cuando se usa con un administrador de contextos.
close() -> None
create_entity
Insertar entidad en una tabla.
create_entity(entity: TableEntity | Mapping[str, Any], **kwargs) -> Dict[str, Any]
Parámetros
Devoluciones
Metadatos de la operación de asignación de diccionarios devueltos desde el servicio
Tipo de valor devuelto
Excepciones
Ejemplos
Creación y adición de una entidad a una tabla
try:
resp = table_client.create_entity(entity=self.entity)
print(resp)
except ResourceExistsError:
print("Entity already exists")
create_table
Crea una nueva tabla en la cuenta actual.
create_table(**kwargs) -> TableItem
Devoluciones
Objeto TableItem que representa la tabla creada.
Tipo de valor devuelto
Excepciones
Si la entidad ya existe
Ejemplos
Creación de una tabla a partir del 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 la entidad especificada en una tabla. No se producirá ningún error si no se encuentra la entidad o el emparejamiento PartitionKey-RowKey.
delete_entity(partition_key: str, row_key: str, **kwargs) -> None
Parámetros
- etag
- str
Etag de la entidad
- match_condition
- MatchConditions
Condición en la que se va a realizar la operación. Los valores admitidos incluyen: MatchConditions.IfNotModified, MatchConditions.Incondicionalmente. El valor predeterminado es Incondicionalmente.
Devoluciones
Ninguno
Excepciones
Ejemplos
Eliminación de una entidad de una tabla
table_client.delete_entity(row_key=self.entity["RowKey"], partition_key=self.entity["PartitionKey"])
print("Successfully deleted!")
delete_table
Elimina la tabla de la cuenta actual. No se generará ningún error si la tabla no existe
delete_table(**kwargs) -> None
Devoluciones
Ninguno
Excepciones
Ejemplos
Eliminación de una tabla del 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
Cree TableClient a partir de una cadena de conexión.
from_connection_string(conn_str: str, table_name: str, **kwargs) -> TableClient
Parámetros
Devoluciones
Un cliente de tabla.
Tipo de valor devuelto
Ejemplos
Autenticación de tableServiceClient desde 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 cliente para interactuar con una tabla específica.
AzureSasCredential (azure-core) o una implementación de TokenCredential de azure-identity. credencial :p aramtype:
~azure.core.credentials.AzureNamedKeyCredential o ~azure.core.credentials.AzureSasCredential o None
from_table_url(table_url: str, *, credential: AzureNamedKeyCredential | AzureSasCredential | None = None, **kwargs) -> TableClient
Parámetros
- table_url
Devoluciones
Un cliente de tabla.
Tipo de valor devuelto
get_entity
Obtenga una sola entidad en una tabla.
get_entity(partition_key: str, row_key: str, **kwargs) -> TableEntity
Parámetros
Devoluciones
Metadatos de la operación de asignación de diccionarios devueltos desde el servicio
Tipo de valor devuelto
Excepciones
Ejemplos
Obtención de una sola entidad de una tabla
# 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 detalles sobre las directivas de acceso almacenadas especificadas en la tabla que se pueden usar con firmas de acceso compartido.
get_table_access_policy(**kwargs) -> Dict[str, TableAccessPolicy | None]
Devoluciones
Diccionario de SignedIdentifiers
Tipo de valor devuelto
Excepciones
list_entities
Enumera las entidades de una tabla.
list_entities(**kwargs) -> ItemPaged[TableEntity]
Parámetros
- results_per_page
- int
Número de entidades devueltas por solicitud de servicio.
Devoluciones
Iterador de TableEntity
Tipo de valor devuelto
Excepciones
Ejemplos
Enumerar todas las entidades contenidas en una tabla
# Query the entities in the table
entities = list(table.list_entities())
for i, entity in enumerate(entities):
print("Entity #{}: {}".format(entity, i))
query_entities
Enumera las entidades de una tabla.
query_entities(query_filter: str, **kwargs) -> ItemPaged[TableEntity]
Parámetros
- query_filter
- str
Especifique un filtro para devolver determinadas entidades. Para obtener más información sobre el formato de filtro, consulte la documentación de ejemplos.
- results_per_page
- int
Número de entidades devueltas por solicitud de servicio.
Diccionario para dar formato a la consulta con parámetros adicionales definidos por el usuario
Devoluciones
Iterador de TableEntity
Tipo de valor devuelto
Excepciones
Ejemplos
Consulta de entidades que se mantienen dentro de una tabla
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
Establece directivas de acceso almacenadas para la tabla que se pueden usar con firmas de acceso compartido.
set_table_access_policy(signed_identifiers: Dict[str, TableAccessPolicy | None], **kwargs) -> None
Parámetros
Directivas de acceso que se van a establecer para la tabla
Devoluciones
Ninguno
Excepciones
submit_transaction
Confirme una lista de operaciones como una sola transacción.
Si se produce un error en alguna de estas operaciones, se rechazará toda la transacción.
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
Lista de operaciones que se van a confirmar en una transacción. Debe tratarse de una iteración de tuplas que contienen un nombre de operación, la entidad en la que se va a operar y, opcionalmente, un dict de kwargs adicionales para esa operación. Por ejemplo:
- ('upsert', {'PartitionKey': 'A', 'RowKey': 'B'})
- ('upsert', {'PartitionKey': 'A', 'RowKey': 'B'}, {'mode': UpdateMode.REPLACE})
Devoluciones
Lista de asignaciones con metadatos de respuesta para cada operación de la transacción.
Tipo de valor devuelto
Excepciones
Ejemplos
Uso de transacciones para enviar varias solicitudes a la vez
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
Actualice la entidad en una tabla.
update_entity(entity: TableEntity | Mapping[str, Any], mode: UpdateMode = UpdateMode.MERGE, **kwargs) -> Dict[str, Any]
Parámetros
- etag
- str
Etag de la entidad
- match_condition
- MatchConditions
Condición en la que se va a realizar la operación. Los valores admitidos incluyen: MatchConditions.IfNotModified, MatchConditions.Incondicionalmente. El valor predeterminado es Incondicionalmente.
Devoluciones
Metadatos de la operación de asignación de diccionarios devueltos desde el servicio
Tipo de valor devuelto
Excepciones
Ejemplos
Actualización de una entidad que ya sale de una tabla
# 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
Actualizar o combinar o insertar entidad en la tabla.
upsert_entity(entity: TableEntity | Mapping[str, Any], mode: UpdateMode = UpdateMode.MERGE, **kwargs) -> Dict[str, Any]
Parámetros
Devoluciones
Metadatos de la operación de asignación de diccionarios devueltos desde el servicio
Tipo de valor devuelto
Excepciones
Ejemplos
Actualizar o combinar o insertar una entidad en una tabla
# 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
La versión de la API de storage que se usa para las solicitudes.
Devoluciones
La versión de la API de storage.
url
Dirección URL completa del punto de conexión a esta entidad, incluido el token de SAS si se usa.
Puede ser el punto de conexión principal o el punto de conexión secundario en función del actual <xref:azure.data.tables.location_mode>.
Devoluciones
Dirección URL completa del punto de conexión, incluido el token de SAS, si se usa.
Tipo de valor devuelto
Azure SDK for Python