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

使用Python脚本将MongoDB云数据导入PowerBI的完整代码求助

PowerBI 调用Python从MongoDB云加载数据完整方案

前置依赖配置

  • 首先确认PowerBI使用的Python环境,查看路径方式:打开PowerBI → 「文件」→「选项和设置」→「选项」→「Python脚本」,复制对应环境路径
  • 在该Python环境下安装两个依赖库,执行命令:pip install pymongo pandas

完整可运行代码

将代码内占位符替换为你自己的MongoDB云配置后,可直接粘贴到PowerBI的Python脚本输入框运行:

import pymongo
import pandas as pd
from pymongo.server_api import ServerApi

# -------------------------- 替换以下配置为你自己的MongoDB云信息 --------------------------
# MongoDB云连接字符串:从Atlas控制台「连接」→「连接你的应用」直接复制即可
uri = "mongodb+srv://<你的用户名>:<你的密码>@<你的集群地址>.mongodb.net/?retryWrites=true&w=majority"
# 要读取的数据库名称
db_name = "你的数据库名"
# 要读取的集合名称
collection_name = "你的集合名"
# 查询条件:全量拉取填{},筛选场景可自定义,比如筛选18岁以上用户写{"age": {"$gt": 18}}
query_filter = {}
# 返回字段控制:不需要_id字段填{"_id": 0},返回全部字段填{}
projection = {}
# -------------------------------------------------------------------------------------

# 建立MongoDB连接
client = pymongo.MongoClient(uri, server_api=ServerApi('1'))
# 连接校验,失败会直接抛出异常,不需要可删除
try:
    client.admin.command('ping')
except Exception as e:
    raise ConnectionError(f"MongoDB连接失败:{e}")

# 拉取集合数据
db = client[db_name]
collection = db[collection_name]
raw_data = list(collection.find(query_filter, projection))

# 嵌套数据扁平化转DataFrame,PowerBI会自动识别该变量作为导入表
df = pd.json_normalize(raw_data)

# 关闭数据库连接
client.close()

PowerBI操作步骤

  • 打开PowerBI Desktop,点击顶部菜单栏「获取数据」→「更多」
  • 在弹出窗口搜索「Python 脚本」,选中后点击「连接」
  • 将修改完配置的代码粘贴到脚本输入框,点击「确定」
  • 运行完成后在导航器里勾选df表,点击「加载」或「转换数据」即可

注意事项

  • 连接失败优先检查你的本机IP是否已经加入MongoDB Atlas的IP白名单,Atlas默认拦截未授权IP访问
  • 连接字符串里的密码如果包含特殊字符,需要提前做URL编码,否则会出现解析错误
  • 大数据量场景建议提前在query_filter里加筛选条件,避免全量拉取导致脚本运行超时

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 12:36:07