使用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
相关产品推荐
相关产品推荐

