官网的教程参考
https://docs.seatable.cn/published/seatable-api/
官网的教程写的太simple而且不直观啦,对seatable初次接触到概念十分的不友好。真的是让人伤脑筋,接下来就用我亲自实践,来给大家验证seatable api的python使用,重复强调里面的一些概念,希望刷到这文章的各位能有所帮助。
获取API
api的获取位置:
每个表格的API是不一样的哟。
base,column,row
官方案例操作
上面代码出现了data type是dictionary
初学者可能对dictionary不懂的话,这里求助ai给你们做了个介绍
In Python, the data type of the given data {‘name’: ‘Tom’, ‘age’: 18} is a dictionary. A dictionary in Python is a collection of key-value pairs enclosed within curly braces
{}
. Each key-value pair maps the key to its corresponding value. In this case,'name'
is a key with the value'Tom'
, and'age'
is a key with the value18
.
要运行好这个代码的前提,是你的表格中,必须要有一个【name】,【age】以下是位置。
其中的【列名】,就要和dictionary类型的key对应,插入的张三李四,是value。
如果不对应,name代码就会报错,提示row does not exist:
ConnectionError: [Errno 400] {“error_type”:“row_not_exist”,“error_message”:“Row does not exist.”}
运行官方给的代码还会出现一个错误:
这里需要解决一个问题。
base.update_row('Table1', 'U_eTV7mDSmSd-K2P535Wzw', row_data)
我们需要自己获取和“U_eTV7mDSmSd-K2P535Wzw”不一样的value,在这个位置上。
怎么获取?
很简单。
第一步,调试的过程中输出rows,得到如下一个arry,我使用json格式化工具,得到清晰的data structure
[{
‘name’: None,
‘age’: None,
‘file’: None,
‘_locked’: None,
‘_locked_by’: None,
‘_archived’: False,
‘_creator’: ‘ed2@auth.local’,
‘_ctime’: ‘2024-04-10T10:41:36.157+08:00’,
‘_last_modifier’: ‘ed2fa9d@auth.local’,
‘_mtime’: ‘2024-04-10T10:41:36.157+08:00’,
‘_id’: ‘Bla1K4zbRJ2KKmOMWPs3AA’
}]
我们可以看到出现一个’_id’: ‘Bla1K4zbRJ2KKmOMWPs3AA’,于是我们将这个填入“U_eTV7mDSmSd-K2P535Wzw”所在的位置。
得到
base.update_row('Table1', 'Bla1K4zbRJ2KKmOMWPs3AA', row_data)
因为在操作表格中,每次增加,都是增加一个row,于是row的_id是唯一的标识,这里的数据处理也是用了一个dictionary。
比如
row_id_1=‘xxxxxxx’ 第一行
row_id_2=‘dddddd’ 第二行
…
在单个row之上,是rows。
我们可以用官方给的代码对rows进行输出,然后还可以对rows进行循环。
rows = base.list_rows("Table1")
print(rows)
for row in rows:
print(row)
这里单独输出的row,就是
这里其实涉及到一个data type的转换,因为rows中是array。
而row中就是dictionary。
做个了简单的概念图:
今天就在这里,码字不易,希望各位看官点个收藏~~~