다음을 통해 공유


TableClient 클래스

Azure Tables 계정의 특정 테이블과 상호 작용하는 클라이언트입니다.

자격 증명에서 TableClient를 만듭니다.

상속
azure.data.tables._base_client.TablesBaseClient
TableClient

생성자

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

매개 변수

endpoint
str
필수

Azure Tables 계정에 대한 URL입니다.

table_name
str
필수

테이블 이름.

credential
AzureNamedKeyCredential 또는 AzureSasCredential 또는 TokenCredential 또는 None

인증할 자격 증명입니다. 계정 URL에 이미 SAS 토큰이 있는 경우 선택 사항입니다. 값은 AzureNamedKeyCredential(azure-core), AzureSasCredential(azure-core) 또는 azure-identity의 TokenCredential 구현 중 하나일 수 있습니다.

api_version
str

이 요청에 사용할 작업의 버전을 지정합니다. 기본값은 "2019-02-02"입니다.

변수

account_name
str

테이블 계정의 이름입니다.

table_name
str

테이블의 이름입니다.

scheme
str

테이블 계정에 대한 전체 URL의 체계 구성 요소입니다.

url
str

스토리지 엔드포인트입니다.

api_version
str

서비스 API 버전입니다.

메서드

close

이 방법은 클라이언트가 연 소켓을 닫는 것입니다. 컨텍스트 관리자와 함께 사용할 때 사용할 필요가 없습니다.

create_entity

테이블에 엔터티를 삽입합니다.

create_table

현재 계정 아래에 새 테이블을 만듭니다.

delete_entity

테이블에서 지정된 엔터티를 삭제합니다. 엔터티 또는 PartitionKey-RowKey 페어링을 찾을 수 없으면 오류가 발생하지 않습니다.

delete_table

현재 계정 아래의 테이블을 삭제합니다. 테이블이 없으면 오류가 발생하지 않습니다.

from_connection_string

연결 문자열에서 TableClient를 만듭니다.

from_table_url

특정 테이블과 상호 작용할 클라이언트입니다.

AzureSasCredential(azure-core) 또는 azure-identity의 TokenCredential 구현. :p aramtype 자격 증명:

~azure.core.credentials.AzureNamedKeyCredential 또는 ~azure.core.credentials.AzureSasCredential 또는 None

get_entity

테이블에서 단일 엔터티를 가져옵니다.

get_table_access_policy

공유 액세스 서명과 함께 사용할 수 있는 테이블에 지정된 저장된 액세스 정책에 대한 세부 정보를 검색합니다.

list_entities

테이블의 엔터티를 나열합니다.

query_entities

테이블의 엔터티를 나열합니다.

set_table_access_policy

공유 액세스 서명과 함께 사용할 수 있는 테이블에 대해 저장된 액세스 정책을 설정합니다.

submit_transaction

작업 목록을 단일 트랜잭션으로 커밋합니다.

이러한 작업 중 하나가 실패하면 전체 트랜잭션이 거부됩니다.

update_entity

테이블의 엔터티를 업데이트합니다.

upsert_entity

테이블에 엔터티를 업데이트/병합 또는 삽입합니다.

close

이 방법은 클라이언트가 연 소켓을 닫는 것입니다. 컨텍스트 관리자와 함께 사용할 때 사용할 필요가 없습니다.

close() -> None

create_entity

테이블에 엔터티를 삽입합니다.

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

매개 변수

entity
Union[TableEntity, Mapping[str, Any]]
필수

테이블 엔터티의 속성입니다.

반환

서비스에서 반환된 사전 매핑 작업 메타데이터

반환 형식

예외

예제

테이블에 엔터티 만들기 및 추가


   try:
       resp = table_client.create_entity(entity=self.entity)
       print(resp)
   except ResourceExistsError:
       print("Entity already exists")

create_table

현재 계정 아래에 새 테이블을 만듭니다.

create_table(**kwargs) -> TableItem

반환

만든 테이블을 나타내는 TableItem입니다.

반환 형식

예외

엔터티가 이미 있는 경우

예제

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

테이블에서 지정된 엔터티를 삭제합니다. 엔터티 또는 PartitionKey-RowKey 페어링을 찾을 수 없으면 오류가 발생하지 않습니다.

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

매개 변수

partition_key
str
필수

엔터티의 파티션 키입니다.

row_key
str
필수

엔터티의 행 키입니다.

entity
Union[TableEntity, Mapping[str, str]]
필수

삭제할 엔터티

etag
str

엔터티의 Etag

match_condition
MatchConditions

작업을 수행할 조건입니다. 지원되는 값에는 MatchConditions.IfNotModified, MatchConditions.Unconditions가 포함됩니다. 기본값은 무조건입니다.

반환

없음

예외

예제

Table의 엔터티 삭제


   table_client.delete_entity(row_key=self.entity["RowKey"], partition_key=self.entity["PartitionKey"])
   print("Successfully deleted!")

delete_table

현재 계정 아래의 테이블을 삭제합니다. 테이블이 없으면 오류가 발생하지 않습니다.

delete_table(**kwargs) -> None

반환

없음

예외

예제

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

연결 문자열에서 TableClient를 만듭니다.

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

매개 변수

conn_str
str
필수

Azure Tables 계정에 대한 연결 문자열입니다.

table_name
str
필수

테이블 이름.

반환

테이블 클라이언트입니다.

반환 형식

예제

connection_string TableServiceClient 인증


   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

특정 테이블과 상호 작용할 클라이언트입니다.

AzureSasCredential(azure-core) 또는 azure-identity의 TokenCredential 구현. :p aramtype 자격 증명:

~azure.core.credentials.AzureNamedKeyCredential 또는 ~azure.core.credentials.AzureSasCredential 또는 None

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

매개 변수

table_url
필수

반환

테이블 클라이언트입니다.

반환 형식

get_entity

테이블에서 단일 엔터티를 가져옵니다.

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

매개 변수

partition_key
str
필수

엔터티의 파티션 키입니다.

row_key
str
필수

엔터티의 행 키입니다.

select
str 또는 list[str]

반환할 엔터티의 desired 속성을 지정합니다.

반환

서비스에서 반환된 사전 매핑 작업 메타데이터

반환 형식

예외

예제

테이블에서 단일 엔터티 가져오기


   # 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

공유 액세스 서명과 함께 사용할 수 있는 테이블에 지정된 저장된 액세스 정책에 대한 세부 정보를 검색합니다.

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

반환

SignedIdentifiers 사전

반환 형식

예외

list_entities

테이블의 엔터티를 나열합니다.

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

매개 변수

results_per_page
int

서비스 요청당 반환되는 엔터티 수입니다.

select
str 또는 list[str]

반환할 엔터티의 desired 속성을 지정합니다.

반환

의 반복기 TableEntity

반환 형식

예외

예제

테이블 내에 있는 모든 엔터티 나열


   # Query the entities in the table
   entities = list(table.list_entities())
   for i, entity in enumerate(entities):
       print("Entity #{}: {}".format(entity, i))

query_entities

테이블의 엔터티를 나열합니다.

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

매개 변수

query_filter
str
필수

특정 엔터티를 반환할 필터를 지정합니다. 필터 서식에 대한 자세한 내용은 샘플 설명서를 참조하세요.

results_per_page
int

서비스 요청당 반환되는 엔터티 수입니다.

select
str 또는 list[str]

반환할 엔터티의 desired 속성을 지정합니다.

parameters
dict[str, Any]

추가적인 사용자 정의 매개 변수를 사용하여 쿼리 서식을 지정하기 위한 사전

반환

의 반복기 TableEntity

반환 형식

예외

예제

테이블 내에 있는 엔터티 쿼리


   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

공유 액세스 서명과 함께 사용할 수 있는 테이블에 대해 저장된 액세스 정책을 설정합니다.

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

매개 변수

signed_identifiers
dict[str, TableAccessPolicy] 또는 dict[str, None]
필수

테이블에 대해 설정할 액세스 정책

반환

없음

예외

submit_transaction

작업 목록을 단일 트랜잭션으로 커밋합니다.

이러한 작업 중 하나가 실패하면 전체 트랜잭션이 거부됩니다.

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

매개 변수

operations
Iterable[Tuple[str, TableEntity, Mapping[str, Any]]]
필수

트랜잭션에서 커밋할 작업 목록입니다. 작업 이름, 작동할 엔터티 및 필요에 따라 해당 작업에 대한 추가 kwargs의 받아쓰기를 포함하는 튜플의 반복 가능이어야 합니다. 예를 들면 다음과 같습니다.


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

반환

트랜잭션의 각 작업에 대한 응답 메타데이터가 있는 매핑 목록입니다.

반환 형식

예외

예제

트랜잭션을 사용하여 한 번에 여러 요청 보내기


   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

테이블의 엔터티를 업데이트합니다.

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

매개 변수

entity
TableEntity 또는 dict[str, Any]
필수

테이블 엔터티의 속성입니다.

mode
UpdateMode
필수

엔터티 병합 또는 바꾸기

etag
str

엔터티의 Etag

match_condition
MatchConditions

작업을 수행할 조건입니다. 지원되는 값에는 MatchConditions.IfNotModified, MatchConditions.Unconditions가 포함됩니다. 기본값은 무조건입니다.

반환

서비스에서 반환된 사전 매핑 작업 메타데이터

반환 형식

예외

예제

테이블에서 이미 종료된 엔터티 업데이트


   # 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

테이블에 엔터티를 업데이트/병합 또는 삽입합니다.

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

매개 변수

entity
TableEntity 또는 dict[str, Any]
필수

테이블 엔터티의 속성입니다.

mode
UpdateMode
필수

엔터티 병합 또는 바꾸기

반환

서비스에서 반환된 사전 매핑 작업 메타데이터

반환 형식

예외

예제

테이블에 엔터티 업데이트/병합 또는 삽입


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

특성

api_version

요청에 사용되는 Storage API의 버전입니다.

반환

Storage API 버전입니다.

url

사용되는 경우 SAS 토큰을 포함하여 이 엔터티에 대한 전체 엔드포인트 URL입니다.

이는 기본 엔드포인트이거나 현재 <xref:azure.data.tables.location_mode>에 따라 보조 엔드포인트일 수 있습니다.

반환

사용되는 경우 SAS 토큰을 포함한 전체 엔드포인트 URL입니다.

반환 형식

str