【问题标题】:Convert Python Request to Microsoft Power BI M code将 Python 请求转换为 Microsoft Power BI M 代码
【发布时间】:2021-05-09 22:34:32
【问题描述】:

我想将 Python 代码中的请求转换为 Power BI Power Query 中使用的 M

我的 Python 代码是

\\

导入请求 将日期时间导入为 dt

headers = {'Authorization': 'Bearer tok_123', 'Accept': 'text/csv'}

url = 'https://api.123/'

参数 = ( (“开始时间”,开始日期), ('end_time',明天), )

response = requests.get(url, headers=headers, params=params)

data = response.text

\\

我制作的 M 代码(不起作用)如下。你能告诉我哪里出错了吗?

收到错误 400 无效请求。我认为我翻译参数的方式有问题。

\\

apiUrl = "https://api.123/", 选项= [标题= [#“授权”=“承载tok_123”,#“开始时间”=“2021-01-05”,#“结束时间”=“2021-02-05”]], 结果 = Web.Contents(apiUrl , 选项)

     结果

\\

谢谢

【问题讨论】:

  • 不应该是print(response.text){或print(data)}吗?

标签: python python-requests powerbi powerquery m


【解决方案1】:

我得到了 400

请参阅下面的“验证请求”和“错误代码详细信息”部分

如果没有您的 url 或文档,我不知道您使用的是什么端点,所以这里有一个示例

HTTP GET https://www.example.com/api/user/search?limit=1000&region=US

使用 RelativePath 和查询

注意:请务必使用options[RelativePath]options[Query] 来防止服务出现服务刷新错误。查看docs: Web.Contents

let 
    Headers = [
        Accept="application/json"
    ],
    BaseUrl = "https://www.example.com",
    Options = [
        RelativePath = "/api/user/search",
        Headers = Headers,
        Query = [
            limit = 1000,
            region = "US"                    
    ],
    Response = Web.Contents(BaseUrl, Options),
    Result = Json.Document(Response) // skip if it's not JSON
in
    Result

授权

设置options[ApiKeyName]允许您使用凭证存储而不是在代码本身中指定您的 API 令牌/密码。

否则,您可以使用 Headers record 设置它,就像在 python 中一样。

错误代码详情

详细请先指定要处理的HTTP状态码

Options = [
    // add this param to Options
    ManualStatusHandling = {"400"}
]

然后在metadata查看错误详情

details = Value.Metadata(Response)

验证请求

您可以使用任一方法查看实际的 HTTP 请求

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-06
    • 1970-01-01
    • 1970-01-01
    • 2022-01-09
    相关资源
    最近更新 更多