首页 > 解决方案 > 带参数查询的元数据库 API 请求限制为 2000 行

问题描述

我们正在使用 python requests 模块来查询元数据库,并试图弄清楚如何将变量传递给相应的查询。问题是,虽然我们已经能够成功地将参数传递给 Metabase,但如果结果查询大于 2000 行,则来自 Metabase 的响应限制为 2000 行。

当我们在不采用 Metabase 变量的 Metabase 中传递预先编写的查询的卡号时,不会发生此问题。

当您在请求中包含参数时,我们试图弄清楚为什么 Metabase API 请求的响应限制为 2000 行。我在下面提供了两个代码示例(第一个调用不带变量的元数据库,第二个调用带变量的元数据库)

不带变量的 API 调用:(这里的响应不限于 2000 行)

import requests

url = f'https://metabase.akashi.io/api/card/1332/query/json'

headers = {'Content-Type': 'application/json', 'X-Metabase-Session': '0c451a0e-240e-4afc-b714-4e440cd02213'}

response = requests.post(url, headers=headers)

带变量的 API 调用:(这是响应限制为 2000 行的地方)

import requests

url = f'https://metabase.akashi.io/api/card/1541/query'

headers = {'Content-Type': 'application/json', 'X-Metabase-Session': '0c451a0e-240e-4afc-b714-4e440cd02213'}

data = {"parameters": [{"type": "category", "target": ["variable", ["template-tag", "min_id"]], "value": "0"}, {"type": "category", "target": ["variable", ["template-tag", "max_id"]], "value": "3000"}]}

params = {"export-format":"json"}

response = requests.post(url, headers=headers, data=data, params=params)

标签: pythonapipython-requestsmetabase

解决方案


推荐阅读