Power Query 表达式错误:“记录”类型的值无法转换为“文本”类型

2024-03-08

我遇到的问题是无法执行以下代码。语法似乎没问题,但是当我尝试执行它时,我得到的响应是:

Expression.Error:我们无法将 Record 类型的值转换为“Text”类型。 细节: 值=[记录] 类型=[类型]

let
    body="{
    ""page"": ""1"",
    ""pageSize"": ""100"",
    ""requestParams"": {
        ""deviceUids"": [
            ""xxx-yyy-xxx-yyyy-xxxx"",
            ""yyy-xxx-yyy-xxxx-yyyy"",
            ""aaa-bbb-aaa-bbbb-aaaa"",
            ""ccc-ddd-ccc-dddd-cccc""
        ],
        ""entityColumns"": [
            {
                ""entityId"": ""144"",
                ""joinColumnName"": ""device_uid"",
                ""columnName"": ""device_random_date""
            }
        ],
        ""columnNames"": [
            ""ts"",
            ""device_uid"",
            ""1"",
            ""32"",
            ""55"",
            ""203"",
            ""204""
        ],
        ""startUnixTsMs"": ""1583413637000"",
        ""endUnixTsMs"": ""1583413640000"",
        ""columnFilters"": [
            {
                ""filterType"": ""eq"",
                ""columnName"": ""55"",
                ""value"": ""1234""
            }
        ],
        ""sortOrder"": [
            {
                ""column"": ""ts"",
                ""order"": ""DESC""
            },
            {
                ""column"": ""55"",
                ""order"": ""ASC""
            }
        ],
        ""entityFilters"": [
            {
                ""entityId"": ""144"",
                ""entityEntryIds"": [
                    ""12345-221-232-1231-123456""
                ]
            }
        ]
    }
    }",
    Parsed_JSON = Json.Document(body),
    BuildQueryString = Uri.BuildQueryString(Parsed_JSON),
    Quelle = Json.Document(Web.Contents("http://localhost:8101/device-data-reader-api/read-paginated/xxx-xxx-yyyy-yyyy", [Headers=[#"Content-Type"="application/json"], Content = Text.ToBinary(BuildQueryString)]))
in
    Quelle

我尝试删除数字的引号,但这会导致同样的问题,因为系统抱怨它无法将数字转换为文本。 我需要需要与请求一起移交的正文才能执行 POST 请求。我做错了什么?


因为您似乎想将此发送为application/json,我想你会在你的代码中改变这一点:

Content = Text.ToBinary(BuildQueryString)

to:

Content = Text.ToBinary(body)

然后你还可以删除下面的行(因为你不需要它们):

Parsed_JSON = Json.Document(body),
BuildQueryString = Uri.BuildQueryString(Parsed_JSON),

我认为你不需要Uri.BuildQueryString除非你想发送为application/x-www-form-urlencoded(即 URL 编码的键值对)。


无关:如果有帮助,您可以在 M 中构建结构,然后使用JSON.FromValue将结构转换为字节,可以直接放入 POST 正文中。未经测试的示例如下。

let
    body = [
        page = "1",
        pageSize = "100",
        requestParams = [
            deviceUids = {
                "xxx-yyy-xxx-yyyy-xxxx",
                "yyy-xxx-yyy-xxxx-yyyy",
                "aaa-bbb-aaa-bbbb-aaaa",
                "ccc-ddd-ccc-dddd-cccc"
            },
            entityColumns = {
                [
                    entityId = "144",
                    joinColumnName = "device_uid",
                    columnName = "device_random_date"
                ]
            },
            columnNames = {
                "ts",
                "device_uid",
                "1",
                "32",
                "55",
                "203",
                "204"
            },
            startUnixTsMs = "1583413637000",
            endUnixTsMs = "1583413640000",
            columnFilters = {
                [
                    filterType = "eq",
                    columnName = "55",
                    value = "1234"
                ]
            },
            sortOrder = {
                [
                    column = "ts",
                    order = "DESC"
                ],
                [
                    column = "55",
                    order = "ASC"
                ]
            },
            entityFilters = {
                [
                    entityId = "144",
                    entityEntryIds = {
                        "12345-221-232-1231-123456"
                    }
                ]
            }
        ]
    ],
    Quelle = Json.Document(
        Web.Contents(
            "http://localhost:8101/device-data-reader-api/read-paginated/xxx-xxx-yyyy-yyyy",
            [
                Headers = [#"Content-Type" = "application/json"],
                Content = Json.FromValue(body)
            ]
        )
    )
in
    Quelle

它可能看起来有点奇怪(因为 M 使用[]代替{}, {}代替[] and =代替:),但只是提及以防有帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Power Query 表达式错误:“记录”类型的值无法转换为“文本”类型 的相关文章

  • 你将如何开始自动化我的工作? - 第2部分

    后续这个问题 https stackoverflow com questions 2796128 how would you start automating my job 在经历了第一波进货 9 小时的复制 粘贴 后 我现在相信我已经满足
  • 实体框架、dll、excel

    我用C 编写了Excel使用的dll 该dll是COM注册的 我与 Excel 的连接没有问题 该 dll 使用实体框架 5 从 SQL Server 数据库检索数据 如果我通过控制台应用程序运行该 dll 则该 dll 工作正常 但是当我
  • 使用 MemoryStream 创建 Open XML 电子表格时的 Excel 和“不可读内容”

    使用 Open XML SDK v2 0 创建 Excel 电子表格时 我们的 Excel 输出最初可以成功运行几个月 最近Excel 所有版本 开始抱怨 Excel在 zot xlsx 中发现不可读的内容 是否要恢复此工作簿的内容 我们正
  • 通过 PHP 检测 excel .xlsx 文件 mimetype

    我无法通过 PHP 检测 xlsx Excel 文件的 mimetype 因为它是 zip 存档 文件实用程序 file file xlsx file xlsx Zip archive data at least v2 0 to extra
  • 如何处理 Workbook.SaveAs 覆盖确认上的“否”或“取消”?

    我希望在 VBA 脚本开始修改内容之前提示用户保存工作簿 当 另存为 对话框出现时 如果用户单击 取消 我会引发自定义错误并停止脚本 如果他们单击 保存 并且文件名已存在 我希望询问他们是否覆盖 这是我的代码 Function SaveCu
  • 在 VBA 中使用 getElementsByClassName

    我正在使用此代码从页面获取产品名称 页面代码是 div class product shop col sm 7 div class product name h1 Claro Glass 1 5 L Rectangular Air Tigh
  • Excel VBA - 如何逐行读取csv文件而不是整个文件

    这是我需要读取的 csv 文件内容 header header header header header header value value value value value value value value value 我在网上找到
  • 如何禁用 openpyxl 表中的自动过滤器?

    当我使用 openpyxl 创建表时 它默认在所有列上添加自动过滤器 使用中提供的示例可以重现该行为文档 https openpyxl readthedocs io en stable worksheet tables html 我想显示没
  • Excel VBA 导出到文本文件。需要删除空行

    我有一个工作簿 使用以下脚本将其导出到文本文件 它工作正常 但是当我打开文本文件时 末尾总是有一个空行 这导致我在生成此文本文件后运行的另一个脚本出现问题 有关如何从导出中删除空行的任何帮助 Code Sub Rectangle1 Clic
  • 如何使用Matlab将数据保存到Excel表格中?

    我想将数据以表格形式保存在 Excel 工作表中 它应该看起来像 Name Age R no Gpa Adnan 24 18 3 55 Ahmad 22 12 3 44 Usman 23 22 3 00 每次当我执行我的文件时类数据 m 下
  • 在查询中实现函数调用(分组运行总计)

    我有一个函数叫做fxGroupedRunningTotal fxGRT 和查询 总计 我想在 Totals 中调用 fxGRT 以便获得一个显示分组运行总计的列 我只能通过导入总计查询来测试 fxGRT 使用总计并调用 fxGRT 的查询
  • 在 VBA 中循环合并单元格

    是否可以循环遍历合并的单元格vba questions tagged vba 我的范围内有 6 个合并单元格B4 B40 我只需要这 6 个单元格中的值 6 次迭代 上面的答案看起来已经让你排序了 如果您不知道合并的单元格在哪里 那么您可以
  • VBA XML V6.0 如何让它等待页面加载?

    我一直在努力寻找答案 但似乎找不到任何有用的东西 基本上 我是从一个网站上拉取的 当您在该页面上时 该网站会加载更多项目 我希望我的代码在加载完成后提取最终数据 但不知道如何让 XML httprequest 等待 Edited Sub p
  • Confluence:使用 VBA 更新现有页面

    我尝试使用 VBA 更新 Confluence 页面 我的想法是使用REST API加载页面内容 修改内容然后上传修改后的版本 这是我的代码 Private Sub TestRESTApi Dim uname As String uname
  • laravel中过滤后如何导出excel?

    我想仅导出视图刀片中过滤的数据 我正在使用 Laravel 7 和 maatwebsite excel 3 1 和 PHP 7 4 2 我浏览了文档并应用了这个 View a href class btn btn success i cla
  • Powerquery:展开其中有记录的所有列

    使用 Microsoft Excel 2013 中的 Power Query 我创建了一个如下所示的表 To insert this in Power Query append a before the Table FromRows Tab
  • Apache poi setformula 不适用于 SE

    我正在尝试在 XSSFCell With POI 中设置公式 Cell setFormula SE D87 0 D80 D87 错误是 名称 SE 在当前工作簿中完全未知 Why 看起来您正在尝试创建一个IF公式 我发现这一页 http w
  • 如何将 MySQL 查询输出保存到 Excel 或 .txt 文件? [复制]

    这个问题在这里已经有答案了 如何将 MySQL 查询的输出保存到 MS Excel 工作表 即使只能将数据存储在 txt文件 就可以了 From 将 MySQL 查询结果保存到文本或 CSV 文件中 http www tech recipe
  • 在二维范围内查找匹配的公式

    我需要一个公式来查找二维范围内的值并返回匹配单元格的坐标或单元格地址 例如 R A B C 1 John Matt Pete 2 Sara Bret Chad 3 Lila Maya Cami 我想搜索范围A1 C3 for Chad并返回
  • SpreadsheetML 文件扩展名被 IE 和 FF 更改 - 内容类型错误?

    我正在 PHP 中生成 SpreadsheetML 文件 当用户下载文件并保存时 默认情况下文件会另存为 Report xml 并在 Excel 中打开 但是 如果选择在 Excel 中打开文件而不是保存文件 则文件名将更改为 Report

随机推荐