本文介绍如何使用 Python SDK 删除表格存储数据表的单行数据。
前提条件
方法说明
def delete_row(self, table_name, row=None, condition=None, return_type=None, transaction_id=None, **kwargs)示例代码
以下示例代码用于删除 test_table 表中主键值为 row1 的行数据。
try:
# 构造主键
primary_key = [('id', 'row1')]
# 构造删除的行数据
row = Row(primary_key)
# 调用 delete_row 方法删除行数据
consumed, return_row = client.delete_row('test_table', row)
print('Read CU Cost: %s' % consumed.read)
print('Write CU Cost: %s' % consumed.write)
except Exception as e:
print("Delete row failed with error: %s" % e)常见问题
表格存储Python SDK 6.0.0删除单行数据报错
推荐以下两种方式解决此问题。
升级表格存储Python SDK的版本。
修改删除数据方法的参数。
# 设置数据表名称。 table_name = '<TABLE_NAME>' # 构造行主键。 primary_key = [('gid', 1), ('uid', '101')] condition = Condition('IGNORE') try: consumed, return_row = client.delete_row(table_name, primary_key, condition) print('Delete succeed, consume %s write cu.' % consumed.write) # 客户端异常,一般为参数错误或者网络异常。 except OTSClientError as e: print("Delete row failed, http_status:%d, error_message:%s" % (e.get_http_status(), e.get_error_message())) # 服务端异常,一般为参数错误或者流控错误。 except OTSServiceError as e: print("Delete row failed, http_status:%d, error_code:%s, error_message:%s, request_id:%s" % ( e.get_http_status(), e.get_error_code(), e.get_error_message(), e.get_request_id()))