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

Power BI Embed设置参数请求失败:POST请求Data字段配置疑问

解决Power BI UpdateParameters API请求的BadRequest错误

你遇到的问题主要出在两个地方:请求体的结构不符合Power BI API的要求,以及没有正确传递JSON格式的数据给接口。

错误原因拆解

你收到的「解析值时遇到意外字符: n」错误,本质是因为requests.post用data参数传入字典时,默认会把数据编码成表单格式(比如name=PlanningSession&newValue=28),但Power BI的UpdateParameters接口明确要求接收JSON格式的请求体,而且必须用updateDetails数组来包裹参数对象,不能直接传递单个参数。

修正后的代码示例

直接使用requests.post的json参数(它会自动把字典序列化为JSON,同时帮你设置正确的Content-Type),同时调整请求体结构:

dest = 'https://api.powerbi.com/v1.0/myorg/groups/' + self.group_id \
+ '/datasets/' + self.dataset_id + '/UpdateParameters'
headers = {'Authorization': 'Bearer ' + self.access_token}
# 构造符合API规范的请求体
payload = {
    "updateDetails": [
        {"name": "PlanningSession", "newValue": "28"}
    ]
}
# 用json参数传递数据,无需手动处理JSON序列化和Content-Type
set_param = requests.post(dest, json=payload, headers=headers)

额外补充说明

  • 如果坚持要用data参数,需要手动把字典转成JSON字符串,同时确保请求头的Content-Type正确:
    import json
    set_param = requests.post(dest, data=json.dumps(payload), headers=headers)
    
  • 若要更新多个参数,只需在updateDetails数组里添加更多参数对象即可:
    payload = {
        "updateDetails": [
            {"name": "PlanningSession", "newValue": "28"},
            {"name": "FiscalYear", "newValue": "2024"}
        ]
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:51:05