全部产品
Search
文档中心

表格存储:读取单行数据

更新时间:Mar 30, 2026

本文介绍如何通过 Python SDK 读取表格存储数据表的单行数据。

注意事项

读取数据时需要提供包含自增主键列值在内的完整主键值。

前提条件

初始化Tablestore Client

方法说明

def get_row(self, table_name, primary_key, columns_to_get=None,
            column_filter=None, max_version=1, time_range=None,
            start_column=None, end_column=None, token=None,
            transaction_id=None):

参数说明

名称

类型

说明

table_name(必选)

str

数据表名称。

primary_key(必选)

List[Tuple]

主键信息,包括主键列名称和主键值。

  • 主键列数据类型包括 STRING、INTEGER 和 BINARY。

  • 主键个数和类型必须与数据表的主键保持一致。

max_version(可选)

int

最大版本数,默认值为1。

  • 必须设置最大版本数和版本范围的其中一个。

  • 如果符合查询条件的数据版本数量超过设置的最大版本数,按从新到旧的顺序返回指定版本数量的数据。

time_range(可选)

Tuple

数据版本范围。

  • 必须设置最大版本数和版本范围的其中一个。

  • 表格存储数据表的每个属性列可以有不同的数据版本,设置版本范围后,仅返回版本范围内的数据。

columns_to_get(可选)

List[str]

指定读取的数据列,可以是主键列或属性列。

  • 不设置columns_to_get时,返回整行数据。

  • 设置columns_to_get时,如果读取的行数据不包含任何指定的数据列,将返回 null。

column_filter(可选)

ColumnCondition

过滤条件,详情请参见过滤器

  • 如果同时设置columns_to_get和column_filter,先按columns_to_get筛选符合条件的数据行,再按column_filter条件过滤数据。

transaction_id(可选)

str

局部事务ID,用于唯一标识局部事务,详情请参见局部事务

示例代码

以下示例代码读取了主键值为 row1 的单行数据。

try:
    # 构造主键
    primary_key = [('id', 'row1')]

    # 调用 get_row 方法读取行数据
    consumed, return_row, next_token = client.get_row('test_table', primary_key)
    print('Read CU Cost: %s' % consumed.read)
    print('Write CU Cost: %s' % consumed.write)
    print('Row Data: %s %s' % (return_row.primary_key, return_row.attribute_columns))
except Exception as e:
    print("Get row failed with error: %s" % e)
  • 设置读取的数据版本范围,结果只返回版本范围内的数据。

    # 设置查询的数据版本范围为当前时间往前一天
    time_range = (int(time.time() * 1000 - 86400 * 1000), int(time.time() * 1000))
    
    # 调用 get_row 方法读取行数据
    consumed, return_row, next_token = client.get_row('test_table', primary_key, time_range=time_range)
  • 指定读取的属性列。

    columns_to_get = ['col2']
    
    # 调用 get_row 方法读取行数据
    consumed, return_row, next_token = client.get_row('test_table', primary_key, columns_to_get=columns_to_get)

相关文档