You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Python向Metabase仪表盘添加卡片?

接口参数释义
  • id:目标新仪表盘的ID,对应接口路径中的:id占位符,需提前创建空白仪表盘后获取该值
  • cardId:待复制的原有卡片的唯一ID,可从旧仪表盘的卡片列表中提取
  • parameter_mappings:卡片与仪表盘全局筛选参数的映射关系,无关联筛选时直接传空数组[]即可,有筛选的场景直接复用旧卡片的对应映射配置就行
  • series:多查询组合系列卡片的查询ID列表,普通单查询卡片直接传空数组[]即可
  • dashboard-card:控制卡片在仪表盘上的排版配置,为字典结构,必填字段为size_x(卡片宽度)、size_y(卡片高度)、row(卡片所在行号,决定纵向排序)、col(卡片所在列号,决定横向排序),直接复用旧卡片的对应配置即可保留原有排版
Python实现代码
import requests

# 基础配置替换为自己的实际信息
METABASE_HOST = "http://your-metabase-domain.com"
ADMIN_ACCOUNT = "your-account@xxx.com"
ADMIN_PASSWORD = "your-password"
OLD_DASHBOARD_ID = 123  # 待复制的源仪表盘ID
NEW_DASHBOARD_NAME = "复制后的新仪表盘"

# 请求头统一配置
headers = {"Content-Type": "application/json"}

# 1. 调用登录接口获取会话凭证
login_res = requests.post(
    f"{METABASE_HOST}/api/session",
    json={"username": ADMIN_ACCOUNT, "password": ADMIN_PASSWORD},
    headers=headers
)
session_id = login_res.json()["id"]
headers["X-Metabase-Session"] = session_id

# 2. 创建空白新仪表盘,获取新仪表盘ID
new_dash_res = requests.post(
    f"{METABASE_HOST}/api/dashboard",
    json={"name": NEW_DASHBOARD_NAME},
    headers=headers
)
new_dash_id = new_dash_res.json()["id"]

# 3. 拉取源仪表盘的所有有序卡片信息
old_dash_res = requests.get(
    f"{METABASE_HOST}/api/dashboard/{OLD_DASHBOARD_ID}",
    headers=headers
)
ordered_cards = old_dash_res.json()["ordered_cards"]

# 4. 遍历卡片依次添加到新仪表盘
for card_info in ordered_cards:
    add_card_payload = {
        "cardId": card_info["card_id"],
        "parameter_mappings": card_info["parameter_mappings"],
        "series": card_info.get("series", []),
        "dashboard-card": {
            "size_x": card_info["size_x"],
            "size_y": card_info["size_y"],
            "row": card_info["row"],
            "col": card_info["col"]
        }
    }
    requests.post(
        f"{METABASE_HOST}/api/dashboard/{new_dash_id}/cards",
        json=add_card_payload,
        headers=headers
    )
注意事项
  • 如果不需要保留原仪表盘的排版,可自行修改dashboard-card中的行、列、宽高参数
  • 若源仪表盘配置了全局筛选参数,可额外调用仪表盘更新接口将筛选规则同步到新仪表盘

内容的提问来源于stack exchange,提问作者NicolasRx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 17:51:03