Power Query报错Expression.SyntaxError:应为令牌 ','。


let
    url = "http://39.106.134.13:8082/api/v1/onemap?page=1&size=500&xzCode=360982"
    headers = [#"Content-Type"="application/json;charset=UTF-8",Cookie="rememberMe=deleteMe; Path=/; Max-Age=0; Expires=Fri, 23-Jun-2023 04:24:03 GMT; SameSite=lax",Referer=""]
    query = []
    content="page=1&size=500&xzCode=360982"
    web=Text.FromBinary(Web.Contents(url[Headers=headers,Query=query,Content=Text.ToBinary(content)]))
in
    Web

img

TechWhizKid参考GPT回答:


let
    url = "http://39.106.134.13:8082/api/v1/onemap?page=1&size=500&xzCode=360982",
    headers = [#"Content-Type"="application/json;charset=UTF-8",Cookie="rememberMe=deleteMe; Path=/; Max-Age=0; Expires=Fri, 23-Jun-2023 04:24:03 GMT; SameSite=lax"],
    query = [],
    content="page=1&size=500&xzCode=360982",
    web=Text.FromBinary(Web.Contents(url, [Headers=headers,Query=query,Content=Text.ToBinary(content)]))
in
    web

引用AI的回答
根据提供的 Power Query 公式来看,你正在尝试从指定的 URL 获取数据。然而,也许是由于公式中的一些错误导致了问题。

以下是对提供的公式进行的一些修改和解释:

let
    url = "http://39.106.134.13:8082/api/v1/onemap?page=1&size=500&xzCode=360982",
    headers = [
        #"Content-Type"="application/json;charset=UTF-8",
        Cookie="rememberMe=deleteMe; Path=/; Max-Age=0; Expires=Fri, 23-Jun-2023 04:24:03 GMT; SameSite=lax",
        Referer=""
    ],
    query = [],
    content = "page=1&size=500&xzCode=360982",
    web = Text.FromBinary(Web.Contents(url, [Headers=headers, Query=query, Content=Text.ToBinary(content)]))
in
    web

在这个公式中,主要有以下几个修改和解释:

  1. url 变量移到了公式的开头,并将完整的 URL 地址放在变量值中。
  2. headers 变量中,将多个头部信息用逗号分隔,并移除了无效的 Content-Type 键。
  3. query 变量设置为一个空列表,意味着没有查询参数需要添加。
  4. 将请求正文 content 设置为文本字符串,其中包含具体的参数。

请注意,这只是基于你提供的信息进行的推测修改,实际情况可能因环境、权限等因素而有所不同。如果问题仍然存在,请提供更多详细信息,例如错误消息或实际的返回结果,以便我能够更准确地帮助你解决问题。

试试能不能用

let
    url = "http://39.106.134.13:8082/api/v1/onemap",
    query = [page = "1", size = "500", xzCode = "360982"],
    data = "",
    headers = [
        #"Content-Type"="application/json;charset=UTF-8",
        Cookie="rememberMe=deleteMe; Path=/; Max-Age=0; Expires=Fri, 23-Jun-2023 04:24:03 GMT; SameSite=lax",
        Referer=""
    ],
    options = [
        Headers=headers,
        Query=query,
        Content=Text.ToBinary(data)
    ],
    web = Text.FromBinary(Web.Contents(url, options))
in
    web

基于new bing部分指引作答:
在您的 Power Query 脚本中,出现了一个语法错误。错误信息指出缺少一个逗号(,)的标记。

以下是您提供的脚本中的问题所在:

web=Text.FromBinary(Web.Contents(url[Headers=headers,Query=query,Content=Text.ToBinary(content)]))

您在 Web.Contents 函数调用中的参数列表中,url 参数后的方括号 [...] 是错误的语法。正确的语法是使用圆括号 ( ) 而不是方括号。

您的代码应该修改为以下形式:

web = Text.FromBinary(Web.Contents(url, [Headers=headers, Query=query, Content=Text.ToBinary(content)]))

将方括号改为圆括号后,url 和 [Headers=headers, Query=query, Content=Text.ToBinary(content)] 成为了 Web.Contents 函数的两个独立参数。

通过修改后的代码,您应该能够解决这个语法错误,并继续执行 Power Query 脚本。

  我读不懂您的代码🤣但您的最后一行,为什么是“Web”而不是“web”哩,看答主们的回答都是小写。

&  看您报错是“表达式.语法错误:','”,您是不是把应该用逗号的地方用成分号了?


这个错误通常发生在你使用 Power Query 时,在编写 M 语言 (M-Code) 时出现了语法错误。

检查是否缺少括号、缺少逗号、无效的函数名称、缺少参数、字符串引号不匹配、缺少分号
检查是否使用了 Power Query 不支持的语法


M函数对大小写敏感,每一个字母必须按函数规范书写,第一个字母都是大写

表被称为Table,每行的内容是一个Record,每列的内容是一个List

行标用大括号{ },比如取第一行的内容:=表{0}   //PQ的第一行从0开始

列标用中括号[ ],比如取自定义列的内容:=表[自定义]

取第一行自定义列的内容:=表{0}[自定义]

根据你提供的Power Query代码,报错信息是"Expression.SyntaxError:应为令牌 ','",这意味着在代码的某个地方缺少了逗号。根据你提供的代码,我看到在url[Headers=headers,Query=query,Content=Text.ToBinary(content)]这一行中,缺少了逗号。

正确的代码应该是:

web = Text.FromBinary(Web.Contents(url, [Headers=headers, Query=query, Content=Text.ToBinary(content)]))

请注意,在Web.Contents函数的第一个参数和第二个参数之间需要有一个逗号。请尝试修改代码并再次运行,看看问题是否解决了。

提示的是Expression.SyntaxError错误,这是标准的语法错误,检查下 headers =这一行的代码中,数据的格式是否有问题。比如#号的位置是否有问题,Content-Type这个参数有引号,而后面的Cookie和Referer没有加引号等。




query = [#"page", "1", #"size", "500", #"xzCode", "360982"]

试试

url = "http://39.106.134.13:8082/api/v1/onemap?page=1&size=500&xzCode=360982"
headers = ["Content-Type"="application/json;charset=UTF-8", 
           "Cookie"="rememberMe=deleteMe; Path=/; Max-Age=0; Expires=Fri, 23-Jun-2023 04:24:03 GMT; SameSite=lax", 
           "Referer"=""]
query = []  
content = "page=1&size=500&xzCode=360982"
web = Web.Contents(url, 
                   Headers=headers,
                   Query=query,  
                   Content=Text.ToBinary(content))
webData = Text.FromBinary(web)