秦皇岛公司做网站,公司网站建设制度,wordpress页面是什么,东莞网站建设(乐云践新)飞书开发学习笔记(三)-利用python开发调试云文档和电子表格
一.建立Python飞书开发环境
首先还是进入开放平台下的API调试台 飞书开放平台#xff1a;https://open.feishu.cn/app?langzh-CN 以获取我的空间下的文件清单为例#xff0c;通过获取飞书API调试台提…飞书开发学习笔记(三)-利用python开发调试云文档和电子表格
一.建立Python飞书开发环境
首先还是进入开放平台下的API调试台 飞书开放平台https://open.feishu.cn/app?langzh-CN 以获取我的空间下的文件清单为例通过获取飞书API调试台提供的示例代码建立Python飞书开发环境。 在下方可以切换到开发的示例代码
import requestsurl https://open.feishu.cn/open-apis/drive/v1/files?directionDESCorder_byEditedTime
payload headers {Authorization: Bearer u-fMw0FpV
}response requests.request(GET, url, headersheaders, datapayload)
print(response.text)注意这里的代码中headers里面有口令信息即 ‘Authorization’: ‘Bearer u-fMw0FpV’ 这个是系统生成的是必填信息。 一共有python SDKPython-RequestsPython-http.client三种方式也就是利用三个不同的python库进行开发理论上应该是SDK最强大实际还未知。 Requests是一个比较常用的库这里就用这个库示例代码吧。 将此代码复制到Python中开发就可以开始。 OK运行成功了良好的开始。
二.Python飞书开发架构的设计
2.1辅助工具准备json
json是返回数据字符串的格式通过json的类工具可以很方便的读取导入json工具
import jsonjson_Datajson.loads(response.text)
# 打印返回体信息
print(json_Data)
# 打印电子表格信息
print(json_Data[data][files][1])返回信息
{created_time: 16991126, modified_time: 16991138, name: 测试表格, owner_id: ou_3bd053e263b2734a2cc, parent_token: nodcnEByngMucMb, token: SVT0sVnhh, type: sheet, url: https://test-cptojg6atdfe.feishu.cn/sheets/SVT0sRnhh}2.2利用飞书API查询某电子表格内的工作表
同上篇的方法利用飞书API”获取工作表“来获取电子表格内的工作表关键信息
#API范例
#url https://open.feishu.cn/open-apis/sheets/v3/spreadsheets/SVTnhh/sheets/query
user_access_tokenu-dYWo5tGit1Bkg4P9h0FoVurlhttps://open.feishu.cn/open-apis/sheets/v3/spreadsheets/ sheet_token /sheets/query
Authorization_valueBearer user_access_token
payload
headers {Authorization: Authorization_value}response requests.request(GET, url, headersheaders, datapayload)
json_Datajson.loads(response.text)
# 打印返回体信息
print(json_Data)
# 将工作表id用数组存起来
sheet_ids [ sheet_info[sheet_id] for sheet_info in json_Data[data][sheets]]
sheet_titles [ sheet_info[title] for sheet_info in json_Data[data][sheets]]
print(sheet_ids)
print(sheet_titles)sheet_ids就获得了电子表格内的工作表idsheet_titles则获得了电子表格内的工作表title
2.3利用飞书API查询某工作表内单元格信息
飞书服务器端API为利用接口用于根据 spreadsheetToken 和 range 读取表格单个范围的值返回数据限制为10M 由于不支持API调试台只能仿照其它API格式写查询字符串
#API范例
# 官方API格式
#url https://open.feishu.cn/open-apis/sheets/v2/spreadsheets/:spreadsheetToken/values/:range
# 示例API格式
#url https://open.feishu.cn/open-apis/sheets/v2/spreadsheets/shtcngNygNfuqhxTBf588jwgWbJ/values/Q7PlXT!A3:D200?valueRenderOptionToStringdateTimeRenderOptionFormattedString
#headers Authorization: Bearer t-ce3540c5f02ac074d64fa90fa49621c0user_access_tokenu-dYWo5tGKmTTfL3m290w0l0Mw0FoV
sheet0_idsheet_ids[0]
sheet0_rangeA1:B2
urlhttps://open.feishu.cn/open-apis/sheets/v2/spreadsheets/ sheet_token /values/sheet0_id!sheet0_range?valueRenderOptionToStringdateTimeRenderOptionFormattedString
Authorization_valueBearer user_access_token
payload
headers {Authorization: Authorization_value}response requests.request(GET, url, headersheaders, datapayload)
json_Datajson.loads(response.text)
# 打印返回体信息
# print(json_Data)
sheet0_values json_Data[data][valueRange][values]
print(sheet0_values)返回信息
[[A1, 测试1], [A2, 测试2]]可以看到读取成功了
2.4利用飞书API向某工作表单元格写入信息
上述读取的操作成功以后写入应该就是类似方法并不困难了。 下方就是写入数据的API也不支持调试工具台但也有参考代码。 spreadsheetToken 和 range 是必须的2个参数 下方是研究后的Python修改单元格值的代码
#API范例
# 官方API格式
#url https://open.feishu.cn/open-apis/sheets/v2/spreadsheets/:spreadsheetToken/values
# 示例API格式
#url PUT https://open.feishu.cn/open-apis/sheets/v2/spreadsheets/shtcnWbJ/values
# headers {Authorization: Bearer t-ce3540c5f0c074530;Content-Type: application/json}
# valueRange{range: Q7PlXT!A1:B2,values: [[ Hello, 1],[ World, 1]]}sheet0_modi_rangesheet0_id!A3:B4
#print(sheet0_modi_range)
urlhttps://open.feishu.cn/open-apis/sheets/v2/spreadsheets/ sheet_token /values
#print(url)
Authorization_valueBearer user_access_token
#print(Authorization_value)
headers {Authorization: Authorization_value,Content-Type:application/json; charsetutf-8}
pay_load json.dumps({valueRange:{range: sheet0_modi_range,values: [[Hello,11],[World,12]]}})
#print(pay_load)
response requests.request(PUT, url, headersheaders, datapay_load)
json_Datajson.loads(response.text)# 打印返回体信息
print(json_Data)返回结果
{code: 0, data: {revision: 10, spreadsheetToken: SVT0sanhh, updatedCells: 4, updatedColumns: 2, updatedRange: 885d89!A3:B4, updatedRows: 2}, msg: success}可以看到msg为success修改单元格值成功 这个API是有点难度的因为其类型不是一般的”GET“或POST,而是PUT 关键点是pay_load 这个字符串不能像其它案例是空值而是要把修改的单元格地址和值提前写进去 提前制作一个valueRange的json对象内容为range地址类型string和values值类型为list 这个json对象要传入参数还需要使用json.dumps()转为json字符串这是最关键的一步在此由于提前没有理解知识 琢磨了一个小时最后重要理解为什么参数类型错误从而修改后成功。 下图中修改后的结果已经显示。 至此利用python操作API获取电子表格中的工作表修改某一单元格值已经成功。