如何刷新Power BI Service中以Python脚本连接器为数据源的数据集?
Power BI Python脚本数据源定时刷新故障排查
问题背景
我有一个以Python脚本连接器作为数据源的Power BI报表,示例代码如下:
import requests import json import pandas as pd authentication_url = "https://name.api.yyyymanager.com/Authentication/AuthorizeUser" credentials = { "Username":"Sha******ya", "Password":"*********" } response = requests.post(authentication_url,json=credentials) token = str(response.content)[3:-2] headers = { 'Content-Type':'application/json', 'Accept':'application/json', 'X-RM12Api-ApiToken':token } # Property Insurance dataset_url = "https://name.api.yyyymanager.com/ReportWriterReports/218/RunReportWriterReport" response = requests.get(url=dataset_url,headers=headers) data = json.loads(response.content) property_insurance = pd.DataFrame(data['Rows']) property_insurance = property_insurance[['name','Property Insurance Expiration']]
在Power BI Desktop中能正常获取数据并制作可视化,但部署到Power BI Service后,设置数据集定时刷新时,数据集设置页面弹出错误:无法刷新数据集。请确保网关已正确配置,且数据源的凭据有效。
故障排查与解决步骤
1. 配置本地数据网关(个人模式)
Power BI Service本身无法直接运行Python脚本执行刷新,必须依赖本地数据网关(个人模式)承载Python运行环境:
- 从微软官方渠道下载安装本地数据网关(个人模式),登录与Power BI Service相同的账号
- 打开网关设置,启用Python脚本支持,并指定和Power BI Desktop一致的Python环境路径(Desktop中可通过
文件 > 选项和设置 > 选项 > Python脚本查看路径)
2. 验证Python环境依赖
网关所在机器必须安装脚本用到的所有Python库,版本需和Desktop匹配:
- 在网关机器的Python环境中执行
pip list,确认requests、pandas等库已安装 - 直接在网关机器上运行该Python脚本,测试是否能正常获取数据,排除脚本本身或API访问问题
3. 重新配置数据源凭据
在Power BI Service的数据集设置页面,找到对应的Python脚本数据源:
- 重新输入并保存凭据,确认脚本中的用户名、密码无误
- 若API有IP白名单限制,需将网关机器的IP地址加入白名单,确保API允许从该机器访问
4. 检查API网络连通性
在网关机器上测试API地址的连通性:
- 用浏览器或curl工具访问脚本中的两个API地址,确认能正常返回内容
- 检查防火墙、代理设置,确保网关机器能正常访问目标API域名
5. 查看刷新日志定位具体问题
在Power BI Service的数据集刷新历史中查看详细错误日志,根据具体提示进一步排查:
- 若提示网关连接失败,检查网关是否在线、登录账号是否匹配
- 若提示脚本执行报错,回到网关机器调试脚本,定位代码问题
内容的提问来源于stack exchange,提问作者Shahab Haidar
相关产品推荐
相关产品推荐

