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

Excel导入瑞典统计局API仅获单列数据的技术求助

解决瑞典统计局(SCB)API导入Excel仅显示一列的问题

问题根源

你的Power Query代码错误地将API返回的key数组(包含指标代码和时间两个元素)展开成了单行列表,导致本该分为两列的维度数据混在了同一列中。SCB API返回的data结构为:

{"key": ["指标代码", "时间"], "values": ["数值"]}

需要将key数组的两个元素分别提取为独立列,而非展开成多行。

修正后的Power Query代码

针对你使用本地JSON查询文件的场景,以下是修正后的代码:

let
    url = "https://api.scb.se/OV0104/v1/doris/en/ssd/START/PR/PR0101/PR0101A/KPItotM",
    // 读取本地JSON并提取有效查询体(去掉外层的queryObj包装)
    rawJson = File.Contents("C:\Users\Alexa\Desktop\JSON-question.json"),
    parsedJson = Json.Document(rawJson),
    jsonReq = Text.ToBinary(Json.FromValue(parsedJson[queryObj])),
    
    // 发送POST请求,添加JSON格式请求头
    web = Web.Contents(url, [
        Content=jsonReq,
        Headers=[#"Content-Type"="application/json"]
    ]),
  
    responseJson = Json.Document(web),
    // 直接提取data数组,简化流程
    dataList = responseJson[data],
    #"Converted to Table" = Table.FromList(dataList, Splitter.SplitByNothing()),
    // 展开key和values字段
    #"Expanded Column1" = Table.ExpandRecordColumn(#"Converted to Table", "Column1", {"key", "values"}, {"key", "values"}),
    // 从key数组中拆分出指标代码和时间列
    #"Added Custom Columns" = Table.AddColumns(#"Expanded Column1", {
        "指标代码", each [key]{0},
        "时间", each [key]{1}
    }),
    // 清理冗余列并转换数据类型
    #"Removed Columns" = Table.RemoveColumns(#"Added Custom Columns",{"key"}),
    #"Expanded values" = Table.ExpandListColumn(#"Removed Columns", "values"),
    #"Changed Type" = Table.TransformColumnTypes(#"Expanded values",{
        {"指标代码", type text},
        {"时间", type text},
        {"values", Currency.Type}
    }, "sv-SE"),
    // 重命名数值列便于识别
    #"Renamed Columns" = Table.RenameColumns(#"Changed Type",{{"values", "KPI数值"}})
in
    #"Renamed Columns"

关键改动说明

  1. 修正请求体:你的本地JSON外层有queryObj包装,需提取该部分作为API请求内容,否则API无法识别查询参数。
  2. 添加请求头:明确指定Content-Type: application/json,确保API正确解析POST请求的JSON格式。
  3. 拆分key数组:通过[key]{0}和[key]{1}分别提取指标代码与时间,生成两个独立列,避免数据混排。
  4. 简化流程:直接从返回JSON中提取data数组,跳过不必要的Record转Table与筛选步骤。

关于Excel「从Web」功能的说明

Excel自带的「从Web」默认发送GET请求,而SCB API需要携带JSON查询体的POST请求,因此无法直接用该功能完成查询,必须通过Power Query的Web.Contents实现。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 07:47:54