python - 带参数查询的元数据库 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)
解决方案
推荐阅读
- flutter - 如何在 Flutter 中重置 Navigator.pop 回调值?
- amazon-web-services - AWS中各种成本估算工具的区别
- selenium - 如何使用 selenium 切换到 shadow dom 内的 iframe
- windows-10 - Grafana Http Error Bad Gateway 做官方教程时
- amazon-web-services - 有没有办法自动将数据从 aws 报告传输到谷歌表
- mysql - 仅在 PHP 中显示本周的行
- qt - 在 linux 中从 qt creator 运行 lupdate 和 lrelease 命令
- c# - 正则表达式用空字符串替换引号中的任何内容:
- pyspark - Pyspark 集群模式异常 - Java 网关进程在向驱动程序发送其端口号之前退出
- javascript - Jquery代码仅在显示不显示时才有效