【问题标题】:JSON - replacement characters for Rest API queryJSON - Rest API 查询的替换字符
【发布时间】:2020-10-10 14:52:15
【问题描述】:

我正在尝试从 WEB API 休息服务器检索数据。

https://stat-xplore.dwp.gov.uk/webapi/online-help/Open-Data-API.html

将数据存储在 Cubes 中。

我了解基础知识并成功检索数据。但是我想使用邮政编码,(邮政编码)分组维度。 此维度按邮政编码的前 3 个字符对邮政编码进行分组。 CF1、CF2等

架构将此定义为发送此维度的请求。

["str:group:UC_Households:X_Geography+%28postcode%29"]

我假设我打算用我感兴趣的邮政编码组替换结尾部分,并用一些特殊字符将邮政编码组括起来。

到目前为止我已经尝试过

["str:group:UC_Households:X_Geography:CF1"]
["str:group:UC_Households:X_Geography:'CF1'"]
["str:group:UC_Households:X_Geography:#CF1#"]
["str:group:UC_Households:X_Geography:CF1%"]
["str:group:UC_Households:X_Geography#CF1#"]
["str:group:UC_Households:X_GeographyCF1"]
["str:group:UC_Households:X_Geography:CF1"]

完整的 JSON 是

{ "database" : "str:database:UC_Households",
    "measures" : [ "str:count:UC_Households:V_F_UC_HOUSEHOLDS" ],
  
    "dimensions" : [

 [ "str:field:UC_Households:V_F_UC_HOUSEHOLDS:HNFAMILY_TYPE" ],

["str:group:UC_Households:X_Geography:CF1"]

]
  }

任何帮助将不胜感激。

【问题讨论】:

  • 你的问题是什么?
  • 您收到回复了吗?我也在为此苦苦挣扎

标签: json api rest


【解决方案1】:

如何轻松为 Stat-Xplore API 生成查询 JSON

  1. 登录https://stat-xplore.dwp.gov.uk
  2. 打开你想要的数据集和表
  3. 在右上角找到“下载表格”工具
  4. 在下拉框中选择“Open Data API Query (.json)”并点击“Go”
  5. 这将下载一个 JSON 文件,其中包含用于描述您在 Web 浏览器中查看的表的查询参数。示例如下:
{
  "database" : "str:database:UC_Monthly",
  "measures" : [ "str:count:UC_Monthly:V_F_UC_CASELOAD_FULL" ],
  "recodes" : {
    "str:field:UC_Monthly:F_UC_DATE:DATE_NAME" : {
      "map" : [ [ "str:value:UC_Monthly:F_UC_DATE:DATE_NAME:C_UC_DATE:202010" ] ],
      "total" : false
    },
    "str:field:UC_Monthly:V_F_UC_CASELOAD_FULL:EMPLOYMENT_CODE" : {
      "map" : [ [ "str:value:UC_Monthly:V_F_UC_CASELOAD_FULL:EMPLOYMENT_CODE:C_UC_EMPLOYMENT:0" ], [ "str:value:UC_Monthly:V_F_UC_CASELOAD_FULL:EMPLOYMENT_CODE:C_UC_EMPLOYMENT:1" ] ],
      "total" : true
    },
    "str:field:UC_Monthly:V_F_UC_CASELOAD_FULL:PARLC_CODE" : {
      "map" : [ [ "str:value:UC_Monthly:V_F_UC_CASELOAD_FULL:PARLC_CODE:V_C_MASTERGEOG11_PARLC_TO_REGION:E14000541" ], [ "str:value:UC_Monthly:V_F_UC_CASELOAD_FULL:PARLC_CODE:V_C_MASTERGEOG11_PARLC_TO_REGION:E14000542" ], [ "str:value:UC_Monthly:V_F_UC_CASELOAD_FULL:PARLC_CODE:V_C_MASTERGEOG11_PARLC_TO_REGION:W07000041" ] ],
      "total" : true
    }
  },
  "dimensions" : [ [ "str:field:UC_Monthly:V_F_UC_CASELOAD_FULL:PARLC_CODE" ], [ "str:field:UC_Monthly:F_UC_DATE:DATE_NAME" ], [ "str:field:UC_Monthly:V_F_UC_CASELOAD_FULL:EMPLOYMENT_CODE" ] ]
}

API table endpoint docs 提供更多信息。


对 OP 问题的解释

我也在尝试使用这个 API。 (我恰好在使用 Python requests 库。)

如果我向/v1/table 端点发出请求,其中一维的类型为GROUP(而不是FIELD

measures=["str:count:UC_Monthly:V_F_UC_CASELOAD_FULL"],
dimensions=[["str:field:UC_Monthly:F_UC_DATE:DATE_NAME"], 
  ["str:group:UC_Monthly:X_Geography+%28residence-based%29"]
]

然后在 HTTP 响应中返回这个错误 422:

requests.exceptions.HTTPError: 422 Client Error: Unprocessable Entity for url: https://stat-xplore.dwp.gov.uk/webapi/rest/v1/table

这是响应的负载,更详细地描述了错误:

{
  "message":"Unexpected schema component type 'group' for 'str:group:UC_Monthly:X_Geography+%28residence-based%29'. Expected one of type [field, valueset, udf].",
  "errorType":"UNEXPECTED_SCHEMA_COMPONENT_TYPE_EXCEPTION",
  "component" : "str:group:UC_Monthly:X_Geography+%28residence-based%29",
  "type" : "group",
  "expectedTypes" : [ "field", "valueset", "udf" ]
}

如果我理解正确,它并不是在抱怨字符串的格式,而是说只有 FIELDVALUESETUDF 对象是预期的。

如果您查看schema 端点,您可以检索有关可能的组、字段等的信息。

{
  'id': 'str:group:UC_Monthly:X_Geography+%28postcode%29',
  'label': 'Geography (postcode)',
  'location': 'https://stat-xplore.dwp.gov.uk/webapi/rest/v1/schema/str:group:UC_Monthly:X_Geography+%2528postcode%2529',
  'type': 'GROUP'
}

【讨论】:

    猜你喜欢
    • 2019-06-29
    • 1970-01-01
    • 2014-07-03
    • 1970-01-01
    • 1970-01-01
    • 2014-11-22
    • 1970-01-01
    • 1970-01-01
    • 2012-07-10
    相关资源
    最近更新 更多