aliyun-table
阿里云表格相关操作
目前支持:
[ ] 查询全部数据
[x] 表格查询:短语查询,前缀匹配查询,精准查询,范围查询
[x] 插入数据
[x] 更新数据
已知bug:
[ ] 查询超过100条时,不加排序可能导致查询无法翻页.
CHANGELOG
v0.1.2 (2020-03-19)
- 现在
put_row
和update_row
会以字典形式返回主键信息.
安装
pip install --upgrade aliyun-table
安装完成后,在交互界面执行:
>>> from aliyun_table import TableClient
>>>
如果没有报错,说明安装成功
初始化
以下变量可以设置为环境变量
OTS_END_POINT
OTS_ACCESS_KEY_ID
OTS_ACCESS_KEY_SECRET
from aliyun_table import TableClient
table_cli = TableClient()
插入数据和更新数据
table_cli = TableClient(instance_name='实例名',
end_point='endpoint',
access_key_id='access_key_secret',
access_key_secret='access_key_secret'):
data = {
'pk1': '123',
# pk2为自增列,需要传None.
'pk2': None,
'col1': 'test'
'article': 'This is a test article.'
}
pk_dict = table_cli.put_row(table_name='table_name',
pk_list=['primary_key1', 'primary_key2'],
data=data)
print(pk_dict)
Reference
class TableClient(object):
def __init__(
self,
table_name,
instance_name,
end_point=None,
access_key_id=None,
access_key_secret=None):
...
def show_index(self, index_name='filter'):
...
def put_row(self, table_name, pk_list, data):
"""
写入数据,写入成功返回主键字典.
:param pk_list [list]: primary key name list. e.g. ['pk1', 'pk2']
:param data [dict]: 包括主键在内的数据字典.
"""
...
def update_row(self, pk_list, data):
"""
更新数据,写入成功返回主键字典.
:param pk_list [list]: primary key name list. e.g. ['pk1', 'pk2']
:param data [dict]: 包括主键在内的数据字典.
"""
...
def query(self,
table_name,
must_query_list=[],
must_not_query_list=[],
should_query_list=[],
get_total_count=False,
sort_list=None,
index_name='filter',
column_to_get=None,
limit=None):
"""
第一个版本的and查询.
根据用户输入的查询条件构造阿里云查询.
:param must_query_list [list]: 需要满足的查询条件列表, 不指定则默认为查询全部数据
:param must_not_query_list [list]: 不查询的条件列表(满足这些条件的数据不查询)
:param should_query_list [list]: 不查询的条件列表(满足这些条件的数据不查询)
:param get_total_count [bool]: 是否需要获取查询到的总数量
:param sort_list [list]: 列的排序列表,格式为list. 默认不排序
:param limit [int]: 最多返回多少数量的数据
:return: 查询到数据的迭代器,每个数据根据get_total_count的取值有所不同
...