关于API获取明道自身数据的过滤的示例

问答  收藏
2 / 139

像上一个贴子说的,有 1000 个学生,想做一个全年级的成绩排序,分别用总成绩、语文、数学、外语、学号进行排序,因为系统限制 100 个取数,而子流程还没有想好怎么应用上,就希望通过明道的 API 获取数据。

在 filter 的时候卡住了一下,特别分享出来。
前置条件

  1. 应用项 API 开发文档
    image.png
    image.png
  2. Filter 应用

image.png

image.png
在 API 开发文档中进行了简单示例,可以通过实际的 F12 打开查看具体应用,直接复制就行

3.用 python 代码测试
image.png

4.python 代码

`

import requests
import json
url = 'http://172.29.20.185:8880/api/v2/open/worksheet/getFilterRows'

headers = {
    "Accept-Encoding": "gzip",
    "Connection": "close",
    "Sec-Ch-Ua": "Chromium",
    "Sec-Ch-Ua-Mobile": "?0",
    "Sec-Ch-Ua-Platform": "Windows",
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Edg/122.0.0.0",
}
bodyers = {
    "appKey": "8218fe1bf0352274",
    "sign": "ZjAxNzA1ZGVjYWYyNDg5MWEwMWU3ODVjNWJmN2ZhNGMxNzg4OGFlMTE4NzY5NjQyZWQzYzRkYjVmYTFlYzJjZQ==",
    "worksheetId": "dpdd",
    "pagesize": "500",
    "filters": [
        {
            "controlId":"67088937f92088be97a0222e",
            "dataType":11,
            "spliceType":1,
            "filterType":2,
            "value": '待排'
        },
        {
            'controlId':"67078119f92088be97a02187",
            'dataType':15,
            'dateRange':0,
            'dateRangeType':1,
            'dynamicSource':[],
            'filterType':8,
            'isDynamicsource': False,
            'spliceType':1,
            'values':[]
        }
        ]
    }
if __name__ == "__main__":
#返回有效文本

    r = requests.post(url, headers=headers, json=bodyers)
    str1 = r.text
    listx = []
    j = 0
    for i in json.loads(str1)['data']['rows']:
        listx.append([])
        listx[j].append(i['67077e9af92088be97a02174'])#车号优先级
        listx[j].append(i['67089363f92088be97a02344'])#车型优先级
        listx[j].append(i['67089363f92088be97a02345'])#电动机优先级
        listx[j].append(i['67089363f92088be97a02346'])#发动机优先级
        listx[j].append(i['67089363f92088be97a02347'])#颜色优先级
        listx[j].append(i['67089363f92088be97a02348'])#部门优先级
        listx[j].append(i['67078119f92088be97a02186'])#总装上线日期
        j=j+1
#print(listx)
print('len====',len(listx))