python_查询并修改多维表格内容
·
python_查询并修改多维表格内容
import requests
import json
# 飞书应用配置
APP_ID = "XXX"
APP_SECRET = "XXX"
# 表格配置
APP_TOKEN = "XXX"
TABLE_ID = "XXX"
# 技术支持姓名
TECHNICAL_SUPPORT = "杰森"
def get_tenant_access_token():
"""获取 tenant_access_token"""
url = "https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal"
headers = {
"Content-Type": "application/json; charset=utf-8"
}
data = {
"app_id": APP_ID,
"app_secret": APP_SECRET
}
response = requests.post(url, headers=headers, json=data)
result = response.json()
if result.get("code") == 0:
return result.get("tenant_access_token")
else:
raise Exception(f"获取token失败: {result.get('msg')}")
def query_technical_support_workload(token, technical_support):
"""查询技术支持人员的工作负荷"""
url = f"https://open.feishu.cn/open-apis/bitable/v1/apps/{APP_TOKEN}/tables/{TABLE_ID}/records/search"
headers = {
"Authorization": f"Bearer {token}",
"Content-Type": "application/json; charset=utf-8"
}
data = {
"view_id": "vewSz3NSZh",
"field_names": ["技术支持", "工作负荷"],
"filter": {
"conjunction": "and",
"conditions": [
{
"field_name": "技术支持",
"operator": "is",
"value": [technical_support]
}
]
}
}
response = requests.post(url, headers=headers, json=data)
result = response.json()
if result.get("code") == 0:
items = result.get("data", {}).get("items", [])
if len(items) > 0:
record = items[0]
workload = record.get("fields", {}).get("工作负荷")
record_id = record.get("record_id")
return {"technical_support": technical_support, "workload": workload, "record_id": record_id}
else:
raise Exception("未找到对应技术支持人员的工作负荷记录")
else:
raise Exception(f"查询记录失败: {result.get('msg')}")
def update_technical_support_workload_record(token, record_id, updated_workload):
"""更新技术支持人员工作负荷"""
url = f"https://open.feishu.cn/open-apis/bitable/v1/apps/{APP_TOKEN}/tables/{TABLE_ID}/records/{record_id}"
headers = {
"Authorization": f"Bearer {token}",
"Content-Type": "application/json; charset=utf-8"
}
data = {
"fields": {
"工作负荷": updated_workload
}
}
response = requests.put(url, headers=headers, json=data)
result = response.json()
return {"success": result.get("code") == 0, "code": result.get("code"), "msg": result.get("msg")}
def main():
try:
print("开始获取 tenant_access_token...")
token = get_tenant_access_token()
print(f"成功获取 token: {token[:20]}...")
print(f"\n开始查询技术支持人员 {TECHNICAL_SUPPORT} 的工作负荷...")
query_result = query_technical_support_workload(token, TECHNICAL_SUPPORT)
print(f"查询结果: {query_result}")
record_id = query_result["record_id"]
current_workload = query_result["workload"]
updated_workload = current_workload - 1
print(f"\n开始更新工作负荷...")
print(f"当前工作负荷: {current_workload}, 更新后: {updated_workload}")
update_result = update_technical_support_workload_record(token, record_id, updated_workload)
if update_result["success"]:
print(f"\n✅ {TECHNICAL_SUPPORT}的工作负荷已成功更新,从 {current_workload} 更新为 {updated_workload}")
else:
print(f"\n❌ {TECHNICAL_SUPPORT}的工作负荷更新失败: {update_result['msg']}")
except Exception as e:
print(f"\n❌ 错误: {e}")
import traceback
traceback.print_exc()
if __name__ == "__main__":
main()
更多推荐



所有评论(0)