删除数据表中的行
使用该接口可以按照两种方式批量删除数据表中的行:
- 按照数据行 ID
- 按照单元格的值
请求
curl -vvv -X DELETE "$API_HOST/open/api/v1/tablenodes/$table_id/rows/" -H "Content-Type: application/json" -d '$request_body'
请求体
{
"deleteBy": "columnValues",
"rowIDs": [
"625faf21edd66af68ccc44a4",
"625fae99edd66af68ccc440e"
],
"columnValues": {
"id": "625fae99edd66af68ccc43f4",
"values": [
"fee9d5e02ae33eafb429e2b89a3d68c6",
"38c7c85c287b6637258768bad7796863"
]
}
}
参数说明
名称 | 类型 | 描述 | 必需 |
---|---|---|---|
deleteBy | string | rowIDs 或 columnValues | 是 |
rowIDs | array | 需要删除的行ID列表 | 当 deleteBy 为 rowIDs时 |
columnValues | object | 用于匹配的列 | 当 deleteBy 为 columnValues 时 |
∟ id | string | 列ID | 是 |
∟ values | array | 要删除的列值的列表 | 是 |
Python 示例
def table_delete_row(access_token, table_id, row_ids, column_values):
headers = {'Authorization': access_token}
data = {
'deleteBy': 'rowIDs', # or 'columnValues',
'rowIDs': row_ids,
'columnValues': column_values
}
url = '%s/open/api/v1/tablenodes/%d/rows/' % (API_HOST, table_id)
response = requests.delete(url, headers=headers, json=data)
return response.json()
# create table using csv
data = {
'projectID': project['id'],
'name': 'test-csv-upload',
'skipFirstRow': True
}
resp = ma.create_table(access_token, data,
'data/create_table_columns.json',
'data/gd.csv')
table = resp['detail']
resp = ma.read_table(access_token, table['id'], '', '')
columns = resp['detail']['columns']
# update the last 20 rows
col_id = [i['id'] for i in resp['detail']['columns'] if i['name'] == 'ID'][0]
delete_row_ids = []
delete_row_values = []
for row in resp['detail']['rows'][-20:-10]:
delete_row_ids.append(row['id'])
for row in resp['detail']['rows'][-10:]:
delete_row_values.append(row['cells'][col_id])
column_values = {
'id': col_id,
'values': delete_row_values
}
resp = ma.table_delete_row(access_token, table['id'],
delete_row_ids, column_values)
响应
响应体示例
{
"code": 0,
"detail": {
"id": 484,
"projectID": 55,
"deletedRowIDs": [
"625e57fe9b6c276dbdbf8c29",
"625e57fe9b6c276dbdbf8c2a"
]
},
"extra":null,
"message": "OK",
"requestID":null
}