宏观经济与国别统计

国家级分母层的实时查询,十三块:世界银行 WDI(全球可比的发展指标——GDP / 人口 / 贫困线,指标码是唯一命名)、Eurostat(欧盟 27 国官方统计,JSON-stat 网格解成行面)、ECB 欧元参考汇率(每工作日的官方基准,换算 EUR 计价合同的因子)、FRED(美系时间序列)、WHO xMart(卫生统计分母——覆盖率 / 死亡率)、UN Comtrade(双边贸易镜像:报告国 × 伙伴 × 商品 × 流向)、Eurostat Comext(欧盟对外 HS2-4-6 贸易镜像——「德国自华进口 HS85 多少欧元」的分母底座)、ILOSTAT(劳动力市场分母)、IMF SDMX(WEO 展望 / GDD 债务 / CPI 物价,全精度原值)、OECD SDMX(经济展望 / 国民账户全库数据流,序列键经结构先行校验)、BIS(央行政策利率 70 年史 / 分部门偿债率 / 美元汇率)、UN SDG(17 目标 × 251 指标的可持续发展库)、世行 IDS(577 个 DT.* 外债指标目录)。这一域的主体是国家不是企业——它不发任何企业事实、不进公司主档,回答的是「这个经济体有多大、值多少、货怎么换」。全部命令在你的机器上本地执行、无需任何凭证:平台侧不设配额,按各上游规则限流;重复查询在缓存有效期内由本机缓存直接应答。

命令一览

本域全部直查面,每条在下文都有自己的分区(一行定位 / 参数 / 真机示例 / 边界)。

命令 辖域 回答什么
economy bis_sdmx_series GLOBAL 国际清算银行统计序列(政策利率 / 偿债率 / 美元汇率)
economy bls_series US 美国劳工统计局序列观测(CPI-U / 失业率 / 非农就业;25 序列×10 年窗)
economy comext_flows EU 欧盟对外 HS 贸易镜像(报告国 × 伙伴 × 品类 × 年)
economy ecb_fx_rates EU 欧元官方参考汇率(1 EUR = X 单位该币)
economy eurostat_table EU 欧盟官方统计表(表 × 维度格)
economy fred_series US 美联储时间序列(GDP / 通胀 / 利率)
economy ilo_stat_indicator GLOBAL 国际劳工统计(就业 / 工资,一国一面)
economy imf_sdmx_series GLOBAL IMF 宏观序列(WEO 展望 / GDD 债务 / CPI 物价)
economy oecd_sdmx_series GLOBAL OECD 宏观数据流(经济展望 / 国民账户,结构校验序列键)
economy un_comtrade_trade GLOBAL 双边贸易镜像(报告国 × 伙伴 × 商品 × 流向)
economy unsd_sdg_indicators GLOBAL UN SDG 指标目录(17 目标 × 251 指标 × series 码)
economy unsd_sdg_series GLOBAL UN SDG 序列观测值(目标 × 地理 × 年)
economy wb_countries GLOBAL 世行国家参照表(ISO3 × 收入档)
economy wb_ids_indicators GLOBAL 世行外债统计目录(577 个 DT.* 债务指标码)
economy wb_wdi_indicators GLOBAL 世行指标目录(WDI 指标码)
economy wb_wdi_values GLOBAL 世行发展指标值(国家 × 年 × 指标码)
economy who_xmart_indicators GLOBAL WHO 指标目录(带取值实体集)
economy who_xmart_values GLOBAL WHO 指标观测值(指标 × M49 地理 × 年)

实时查询

以下均为真实运行命令的原样输出,仅节选部分行。查询是实时的——你运行时拿到的就是官方数据源当时的数据,数字随上游更新而变化。

以下示例省略行首的可执行名——补上 agentdata (或 python -m agentdata )即为完整命令。

economy bis_sdmx_series

国际清算银行统计序列(政策利率 / 偿债率 / 美元汇率)

参数:

旗标 必填 说明
--flow 是 BIS 数据流 id(WS_CBPOL 政策利率 / WS_DSR 偿债率 / WS_XRU 美元汇率)
--key 是 SDMX 序列键,至少两段点分(段序按数据流定义:WS_CBPOL 是 M.US、WS_DSR 是 Q.US.N、WS_XRU 是 M.CN.CNY.E)——单段 key=全地区巨墙,本地拒
--start 否 期间窗起点(上游 startPeriod)
--end 否 期间窗截止(上游 endPeriod)

**注意:**key 至少两段(点分 SDMX 序列键)——单段(如只给 M)=所有国家全史的巨墙,本面本地拒;段序按流定义:WS_CBPOL M.US、WS_DSR Q.US.N(美国非金融企业偿债率)、WS_XRU M.CN.CNY.E(USD/CNY,REF_AREA=币种母国码);错 key 回 404+SDMX 错误——是 not-found 不是封锁。

$ economy bis_sdmx_series --flow WS_CBPOL --key M.US --start 2026-01-01
{
  "reason": "BLS series CUUR0000SA0, LNS14000000, CES0000000001 — 99 observations, latest ~3 years (default window); first CES0000000001 2024-M01 = 157032.0",
  "result": {
    "series": ["CUUR0000SA0", "LNS14000000", "CES0000000001"],
    "total": 99, "count": 99,
    "rows": [
      { "series": "CES0000000001", "year": 2024, "period": "M01", "period_name": "January",
        "value": 157032.0, "latest": false, "footnotes": [] },
      { "series": "CES0000000001", "year": 2024, "period": "M02", "period_name": "February",
        "value": 157238.0, "latest": false, "footnotes": [] },
      { "series": "LNS14000000", "year": 2024, "period": "M01", "period_name": "January",
        "value": 3.7, "latest": false, "footnotes": [] },
      { "series": "LNS14000000", "year": 2026, "period": "M08", "period_name": "August",
        "value": 4.1, "latest": false, "footnotes": [] },
      { "series": "LNS14000000", "year": 2026, "period": "M09", "period_name": "September",
        "value": 4.2, "latest": true, "footnotes": [] },
      { "series": "CUUR0000SA0", "year": 2024, "period": "M01", "period_name": "January",
        "value": 308.417, "latest": false, "footnotes": [] },
      { "series": "CUUR0000SA0", "year": 2026, "period": "M08", "period_name": "August",
        "value": 334.98, "latest": false, "footnotes": [] },
      { "series": "CUUR0000SA0", "year": 2026, "period": "M09", "period_name": "September",
        "value": 336.94, "latest": true, "footnotes": [] },
      { "series": "CES0000000001", "year": 2026, "period": "M08", "period_name": "August",
        "value": 159015.0, "latest": false, "footnotes": ["P=preliminary"] },
      { "series": "CES0000000001", "year": 2026, "period": "M09", "period_name": "September",
        "value": 159044.0, "latest": true, "footnotes": ["P=preliminary"] }
    ],
    "series_without_data": [],
    "messages": []
  },
  "evidence": [
    { "quote": "CES0000000001 2024-M01 (January) = 157032.0",
      "url": "https://api.bls.gov/publicAPI/v2/timeseries/data/" },
    { "quote": "CES0000000001 2024-M02 (February) = 157238.0",
      "url": "https://api.bls.gov/publicAPI/v2/timeseries/data/" },
    { "quote": "CES0000000001 2024-M03 (March) = 157466.0",
      "url": "https://api.bls.gov/publicAPI/v2/timeseries/data/" },
    { "quote": "CES0000000001 2024-M04 (April) = 157530.0",
      "url": "https://api.bls.gov/publicAPI/v2/timeseries/data/" },
    { "quote": "CES0000000001 2024-M05 (May) = 157608.0",
      "url": "https://api.bls.gov/publicAPI/v2/timeseries/data/" }
  ],
  "source": { "provider": "bls", "execution": "local", "from_cache": false, "observed_at": "2026-11-03T08:17:17.357Z" }
}

**怎么读:**一行=一个期间观测;dims 按数据流的维序动态(WS_CBPOL 两维 FREQ.REF_AREA、WS_DSR 三维、WS_XRU 四维),title 是官方序列名(自描述单位与口径)。行序=期间升序,reason 的「latest」取末行。政策利率 WS_CBPOL 有 1954-07 起的 70 年月度史——不给 --start 会整段拉回。24 小时 TTL。

economy bls_series

美国劳工统计局序列观测(CPI-U / 失业率 / 非农就业;25 序列×10 年窗)

参数:

旗标 必填 说明
--series 是 BLS 序列 id,逗号分隔,≤ 25 个(官方码表:CUUR0000SA0=CPI-U、LNS14000000=失业率、CES0000000001=非农就业;小写本地归一大写)
--start-year 否 窗起点年(上游 startyear;与 --end-year 成对,双缺=最近 ~3 个日历年)
--end-year 否 窗截止年(上游 endyear;与 --start-year 成对;≤10 年窗——更宽窗本地拒:上游钳位保留的是最早十年)

注意:****>10 年窗口本地硬拒——上游不报错而是把 endyear 静默钳到 startyear+9,且保留的是最早十年(实测 2010..2026 回答 2010..2019,startyear 锚定,message 一行 "Year range has been reduced...")——调用方要近期数据会被静默吞掉,本面在请求前拒并引证据;--start-year/--end-year 成对(只给一个=usage_error,半窗行为上游未钉不发货);bogus id 不是错误(200/REQUEST_SUCCEEDED + message 行 "Invalid Series for Series X" + 该 id 在 Results.series 里 data 空)——本面把它列为 series_without_data,仅当全部 id 都显式 invalid 才 upstream_not_found;catalog/calculations/annualaverage/aspects 是 key 门控项(keyless 传 catalog 回 "The catalog has been disabled")——永不上送;id 词表=大写字母+数字(签名文档口径,小写本地归一、其余字符拒)。

$ economy bls_series --series CUUR0000SA0,LNS14000000,CES0000000001
{
  "reason": "BLS series CUUR0000SA0, LNS14000000, CES0000000001 — 99 observations, latest ~3 years (default window); first CES0000000001 2024-M01 = 157032.0",
  "result": {
    "series": ["CUUR0000SA0", "LNS14000000", "CES0000000001"],
    "total": 99, "count": 99,
    "rows": [
      { "series": "CES0000000001", "year": 2024, "period": "M01", "period_name": "January",
        "value": 157032.0, "latest": false, "footnotes": [] },
      { "series": "CES0000000001", "year": 2024, "period": "M02", "period_name": "February",
        "value": 157190.0, "latest": false, "footnotes": [] },
      { "series": "CES0000000001", "year": 2024, "period": "M03", "period_name": "March",
        "value": 157512.0, "latest": false, "footnotes": [] },
      { "series": "LNS14000000", "year": 2026, "period": "M07", "period_name": "July",
        "value": 4.3, "latest": false, "footnotes": [] },
      { "series": "LNS14000000", "year": 2026, "period": "M08", "period_name": "August",
        "value": 4.3, "latest": false, "footnotes": [] },
      { "series": "LNS14000000", "year": 2026, "period": "M09", "period_name": "September",
        "value": 4.2, "latest": true, "footnotes": [] },
      { "series": "CUUR0000SA0", "year": 2026, "period": "M07", "period_name": "July",
        "value": 325.865, "latest": false, "footnotes": [] },
      { "series": "CUUR0000SA0", "year": 2026, "period": "M08", "period_name": "August",
        "value": 326.699, "latest": false, "footnotes": [] },
      { "series": "CUUR0000SA0", "year": 2026, "period": "M09", "period_name": "September",
        "value": 328.143, "latest": true, "footnotes": [] }
    ],
    "series_without_data": [],
    "messages": []
  },
  "evidence": [
    { "quote": "CES0000000001 2024-M01 (January) = 157032.0",
      "url": "https://api.bls.gov/publicAPI/v2/timeseries/data/" },
    { "quote": "CES0000000001 2024-M02 (February) = 157190.0",
      "url": "https://api.bls.gov/publicAPI/v2/timeseries/data/" },
    { "quote": "CES0000000001 2024-M03 (March) = 157512.0",
      "url": "https://api.bls.gov/publicAPI/v2/timeseries/data/" },
    { "quote": "CES0000000001 2024-M04 (April) = 157876.0",
      "url": "https://api.bls.gov/publicAPI/v2/timeseries/data/" },
    { "quote": "CES0000000001 2024-M05 (May) = 157961.0",
      "url": "https://api.bls.gov/publicAPI/v2/timeseries/data/" }
  ],
  "source": { "provider": "bls", "execution": "local", "from_cache": false, "observed_at": "2026-11-03T08:17:17.357Z" }
}

怎么读:一行=一个序列 × 年 × 期观测(rows 长表形);上游 value 是字符串("336.940"),SDK 转 float、."/空=缺口 null 不造数;latest 标记最新观测(true);footnotes 紧凑随行(P=preliminary` 初值钉);上游最新在前,SDK 排升序(series, year, period)便于时序阅读。不传年份=最近 ~3 个日历年(实测 2024..2026=33 观测/序列)。keyless 档:25 序列 × 10 年 × 500 次/天。12 小时 TTL。

economy comext_flows

欧盟对外 HS 贸易镜像(报告国 × 伙伴 × 品类 × 年)

参数:

旗标 必填 说明
--reporter 否 报告方 Eurostat geo 码(可重复,如 DE;聚合体 EU / EU27_2020 / EA / EA21 与国家码同框)
--partner 否 伙伴方 geo 码(可重复,如 CN、WLD=世界)
--product 否 HS 2/4/6 品类码(可重复;85=电气机械)——码形错是静默零格,对 dimensions.product.codes 核对
--flow 否 流向(可重复:1 进口 / 2 出口)——不给=双向各一行
--indicators 否 值口径(默认 VALUE_EUR 欧元;亦 QUANTITY_IN_100KG)
--time 否 年份过滤(可重复,如 2024)
--since 否 时间轴起点(上游 sinceTimePeriod)
--until 否 时间轴终点(上游 untilTimePeriod)——至少给一个过滤维,零过滤上游 413

注意:根带专用 comext/ 段——普通 Eurostat 根对 ds- 数据集回 404(本面内置正确根);零过滤本地拒——裸镜 313 亿格、上游 413 "Full extraction forbidden"、单查上限 500 万格(本面另设 50 万格本地帽);多值必须重复传(--reporter DE --reporter FR)——+ 拼接 400、逗号拼接静默零格;product 码形是 HS2/4/6(85=电气机械),码形错静默零格不报错——对 dimensions.product.codes 核对;报告方聚合体(EU / EU27_2020 / EA / EA21)与国家码同框。

$ economy comext_flows --reporter DE --partner CN --product 85 --time 2024
{
  "reason": "Comext annual HS mirror — 2 cells of 4 in the grid, top freq=A, reporter=DE, partner=CN, product=85, flow=1, indicators=VALUE_EUR, time=2024 = 29698131086 (updated 2026-10-16T11:00:00+0200)",
  "result": {
    "rows": [
      { "freq": "A", "reporter": "DE", "partner": "CN", "product": "85", "flow": "1", "indicators": "VALUE_EUR", "time": "2024", "value": 29698131086 },
      { "freq": "A", "reporter": "DE", "partner": "CN", "product": "85", "flow": "2", "indicators": "VALUE_EUR", "time": "2024", "value": 18614843580 }
    ],
    "total": 4,
    "count": 2,
    "label": "International trade of EU and non-EU countries since 2002 by HS2-4-6",
    "updated": "2026-10-16T11:00:00+0200"
  },
  "evidence": [
    { "quote": "freq=A, reporter=DE, partner=CN, product=85, flow=1, indicators=VALUE_EUR, time=2024 = 29698131086",
      "url": "https://ec.europa.eu/eurostat/api/comext/dissemination/statistics/1.0/data/ds-059341" },
    { "quote": "freq=A, reporter=DE, partner=CN, product=85, flow=2, indicators=VALUE_EUR, time=2024 = 18614843580",
      "url": "https://ec.europa.eu/eurostat/api/comext/dissemination/statistics/1.0/data/ds-059341" }
  ],
  "source": { "provider": "comext", "execution": "local", "from_cache": false, "observed_at": "2026-11-03T04:24:56.061Z" }
}

**怎么读:**一行=一个(报告国 × 伙伴 × 品类 × 流向 × 年)格子;value 单位欧元(indicators 缺省 VALUE_EUR,另可 QUANTITY_IN_100KG);flow 是字符串 1/2(进口/出口),不给 --flow 就双向各一行;total 数的是网格总格数(本例 4 格——freq 维含 M,但年度镜像里月度格恒空,只有 2 格有值);updated 是上游刷新戳(年度镜像按月级滚动)。行序按 JSON-stat 网格末维最快解出。24 小时 TTL。

economy ecb_fx_rates

欧元官方参考汇率(1 EUR = X 单位该币)

参数:

旗标 必填 说明
--currency 是 币种的 ISO 4217 三字母码(USD / JPY / GBP)——序列键是 EXR.D.{CCY}.EUR.SP00.A
--start 否 窗口起始日(上游 startPeriod);与 --end 至少给一端,否则拉全史(约 8,000 行)
--end 否 窗口截止日(上游 endPeriod)

**注意:**历史 CSV(eurofxref-hist.csv)是 2010 年僵尸快照,不走;SDMX 端点先按 Accept 头协商、再看 format 参数——默认的 Accept: application/json 会让 format=csvdata 失效、回 200 的 SDMX-JSON 信封(不是 csvdata 契约),本面显式发 Accept: text/csv;--start / --end 至少给一端(都不给就是全史,约 8,000 行)。

$ economy ecb_fx_rates --currency USD --start 2026-10-01 --end 2026-10-31
{
  "reason": "ECB reference rate USD/EUR — 22 daily observations 2026-10-01→2026-10-31, latest 2026-10-30 = 1.1172",
  "result": {
    "rows": [
      { "currency": "USD", "base_currency": "EUR", "rate_type": "SP00", "variation": "A",
        "date": "2026-10-01", "rate": 1.1298, "status": "A", "title": "US dollar/Euro ECB reference exchange rate" },
      { "currency": "USD", "base_currency": "EUR", "rate_type": "SP00", "variation": "A",
        "date": "2026-10-30", "rate": 1.1172, "status": "A", "title": "US dollar/Euro ECB reference exchange rate" }
    ],
    "total": 22,
    "count": 22,
    "unit": "USD per 1 EUR (ECB reference rate)"
  },
  "evidence": [
    { "quote": "2026-10-01: 1 EUR = 1.1298 USD",
      "url": "https://www.ecb.europa.eu/stats/policy_and_exchange_rates/euro_reference_exchange_rates/html/index.en.html" }
  ],
  "source": { "provider": "ecb", "execution": "local", "from_cache": false, "observed_at": "2026-11-02T10:47:51.394Z" }
}

怎么读:rate 的语义是「1 EUR = X 单位该币」——不是反向;行序=日期升序,reason 里的「latest」是窗口内最后一条(每工作日一更,周末无行)。币种与基准币随行走,率和它的日期从不脱钩。12 小时 TTL。

economy eurostat_table

欧盟官方统计表(表 × 维度格)

参数:

旗标 必填 说明
--table 是 表码(如 tec00001 / demo_pjan / nama_10_a64)
--geo 否 地理过滤(可重复,如 DE)——多值必须重复传,逗号拼接会静默回零格
--time 否 时间过滤(可重复,如 2023)
--dim 否 其余维度过滤,k=v 形式(可重复,如 unit=CP_MEUR、nace_r2=TOTAL)——不给就是整张网格
--since 否 时间轴起点(上游 sinceTimePeriod)
--until 否 时间轴终点(上游 untilTimePeriod)
--lang 否 上游语言(默认 EN)

注意:多值过滤必须重复传(--geo DE --geo FR)——+ 拼接上游回 400、逗号拼接静默回零格(近失面);表外 geo 回零格且不报错(合法空≠错误);--dim 不给就是整张网格(nama_10_a64 配 --geo DE --time 2023 实测 17,664 格、8,341 格有值、1.87 MB),本面设 50 万格本地上限。

$ economy eurostat_table --table nama_10_a64 --geo DE --time 2023 --dim unit=CP_MEUR --dim nace_r2=TOTAL
{
  "reason": "Eurostat Gross value added and income by detailed industry (NACE Rev.2 ) — 8 cells (table holds 8), updated 2026-10-29T23:00:00+0100, dims freq (1 code), unit (1 code), nace_r2 (1 code), na_item (8 codes), top DE 2023 freq=A unit=CP_MEUR nace_r2=TOTAL na_item=B1G = 3888686.0",
  "result": {
    "rows": [
      { "freq": "A", "unit": "CP_MEUR", "nace_r2": "TOTAL", "na_item": "B1G", "geo": "DE", "time": "2023", "value": 3888686.0, "status": "p" },
      { "freq": "A", "unit": "CP_MEUR", "nace_r2": "TOTAL", "na_item": "D29X39", "geo": "DE", "time": "2023", "value": -13324.0, "status": "p" }
    ],
    "total": 8,
    "count": 8,
    "label": "Gross value added and income by detailed industry (NACE Rev.2 )",
    "updated": "2026-10-29T23:00:00+0100"
  },
  "evidence": [
    { "quote": "freq=A unit=CP_MEUR nace_r2=TOTAL na_item=B1G geo=DE time=2023 status=p = 3888686.0",
      "url": "https://ec.europa.eu/eurostat/databrowser/view/nama_10_a64/default/table?lang=en" }
  ],
  "source": { "provider": "eurostat", "execution": "local", "from_cache": false, "observed_at": "2026-11-02T10:48:02.634Z" }
}

怎么读:一行=一个格子:{维度码: 码, value, status}——status 是格子旗标(p 暂定 / e 估 / b 序列中断);dimensions 给出每个维度的码表(codes + labels)。JSON-stat 网格按最后一维最快的行序解出,跨表拼格子先对维度码、再对时间。12 小时 TTL。

economy fred_series

美联储时间序列(GDP / 通胀 / 利率)

参数:

旗标 必填 说明
--series 是 序列 id,一次一个(GDP / CPIAUCSL / DGS10)——多个 id 上游回 ZIP
--start 否 观测窗起点(上游 cosd)
--end 否 观测窗终点(上游 coed)

**注意:**一次一个序列 id——多个 id 上游回 ZIP 包(二进制墙:JSON 通道带不动二进制),本面本地拦死;--start / --end 是上游 cosd / coed;CSV 出口不公布配额,1 rps 礼貌档。

$ economy fred_series --series GDP --start 2024-01-01 --end 2026-11-01
{
  "reason": "FRED GDP — 11 observations, first 2024-01-01, latest 2026-07-01 = 33010.036",
  "result": {
    "rows": [
      { "date": "2024-01-01", "series": "GDP", "value": 28793.191 },
      { "date": "2026-07-01", "series": "GDP", "value": 33010.036 }
    ],
    "total": 11,
    "count": 11
  },
  "evidence": [
    { "quote": "2024-01-01: 28793.191 (GDP)", "url": "https://fred.stlouisfed.org/series/GDP" }
  ],
  "source": { "provider": "fred", "execution": "local", "from_cache": false, "observed_at": "2026-11-02T10:47:56.356Z" }
}

怎么读:value 是观测值,缺观测是 null(不填零);行序=日期升序,reason 的「first / latest」是窗口两端。不存在的序列 id 回 HTML 错误页(200),本层按表头魔数判为 not-found。12 小时 TTL。

economy ilo_stat_indicator

国际劳工统计(就业 / 工资,一国一面)

参数:

旗标 必填 说明
--indicator 是 ILOSTAT 指标码(如 EMP_TEMP_SEX_ECO_NB_A)
--ref-area 是 国家 ISO-3 码(如 USA)——必填,全球口径体量差几个数量级
--time-from 否 年份下界(上游 timefrom)
--time-until 否 年份上界(上游 timeto——上游不认 timeuntil)
--sex 否 性别维度过滤(上游 sex)
--classif 否 分类维度过滤(上游 classif1,如 ECO_SECTOR_TOTAL)
--source 否 来源过滤(上游 source)

注意:****年上界的上游参数名是 timeto——timeuntil 被接受但静默忽略(答案会一路跑到最新年),本面把 --time-until 映射到 timeto(--time-from 2020 --time-until 2024 实测 510 行 2020–2024);--ref-area 必填(全球口径体量差几个数量级);本机 curl 栈回空 200,urllib 通道是能用的那条。

$ economy ilo_stat_indicator --indicator EMP_TEMP_SEX_ECO_NB_A --ref-area USA --time-from 2020 --time-until 2024
{
  "reason": "ILOSTAT EMP_TEMP_SEX_ECO_NB_A × USA — 510 observations 2020→2024, latest 2024 SEX_T ECO_SECTOR_TOTAL = 161345.53",
  "result": {
    "rows": [
      { "ref_area": "USA", "indicator": "EMP_TEMP_SEX_ECO_NB", "source": "BA:453", "sex": "SEX_T",
        "classif1": "ECO_SECTOR_TOTAL", "time": "2024", "obs_value": 161345.53, "obs_status": null },
      { "ref_area": "USA", "indicator": "EMP_TEMP_SEX_ECO_NB", "source": "BA:453", "sex": "SEX_F",
        "classif1": "ECO_ISIC4_U", "time": "2020", "obs_value": 186.411, "obs_status": "B" }
    ],
    "total": 510,
    "count": 510
  },
  "evidence": [
    { "quote": "2024 SEX_T ECO_SECTOR_TOTAL = 161345.53",
      "url": "https://rshiny.ilo.org/dataexplorer50/?lang=en&id=EMP_TEMP_SEX_ECO_NB_A" }
  ],
  "source": { "provider": "ilo_stat", "execution": "local", "from_cache": false, "observed_at": "2026-11-02T10:48:13.715Z" }
}

**怎么读:**一行=一个观测:年 × 性别 × 行业分类;行序=年份降序(最新在前),reason 的「latest」是首行(带性别与分类码)。obs_status 是观测状态,note_indicator 里的 I11:… 是上游脚注号。24 小时 TTL。

economy imf_sdmx_series

IMF 宏观序列(WEO 展望 / GDD 债务 / CPI 物价)

参数:

旗标 必填 说明
--flow 是 IMF 数据流 id(WEO 世界经济展望 / GDD 全球债务 / CPI 物价)
--country 是 国家码(WEO/GDD 用 ISO-3,如 USA)——与 --indicator 双必填,国家-only key 是巨墙
--indicator 是 指标码(如 NGDP_RPCH = 实际 GDP 增速)——键形=COUNTRY.INDICATOR\[.FREQUENCY\],适合 WEO/GDD/CPI 族(UNFCCC 的维序不同,勿用)
--frequency 否 可选尾维(如 A)
--start 否 期间窗起点(上游 startPeriod)
--end 否 期间窗截止(上游 endPeriod)

注意:****--country 与 --indicator 双必填——国家-only key(/data/WEO/USA)是 MB 级巨墙,本面永不生成单段 key;键形 COUNTRY.INDICATOR[.FREQUENCY] 适合 WEO/GDD/CPI 族——UNFCCC 等流在 INDICATOR 前还插别的维,错序键上游 404;SCALE 只是显示提示,OBS_VALUE 已是真值。

$ economy imf_sdmx_series --flow WEO --country USA --indicator NGDP_RPCH --start 2023 --end 2026
{
  "reason": "IMF SDMX WEO USA.NGDP_RPCH — 4 observations 2023→2026, first 2023, latest 2026 = 2.327686 (Gross domestic product (GDP), Constant prices, Percent change)",
  "result": {
    "rows": [
      { "flow": "WEO", "dims": { "COUNTRY": "USA", "INDICATOR": "NGDP_RPCH", "FREQUENCY": "A" },
        "period": "2023", "value": 2.918628, "scale": "0",
        "series_name": "Gross domestic product (GDP), Constant prices, Percent change",
        "doi": null },
      { "flow": "WEO", "dims": { "COUNTRY": "USA", "INDICATOR": "NGDP_RPCH", "FREQUENCY": "A" },
        "period": "2026", "value": 2.327686, "scale": "0",
        "series_name": "Gross domestic product (GDP), Constant prices, Percent change",
        "doi": null }
    ],
    "total": 4,
    "count": 4,
    "key": "USA.NGDP_RPCH"
  },
  "evidence": [
    { "quote": "2023 2.918628 (COUNTRY=USA, INDICATOR=NGDP_RPCH, FREQUENCY=A)",
      "url": "https://api.imf.org/external/sdmx/2.1/data/WEO/USA.NGDP_RPCH" }
  ],
  "source": { "provider": "imf_sdmx", "execution": "local", "from_cache": false, "observed_at": "2026-11-03T02:09:56.131Z" }
}

怎么读:一行=一个期间观测,value 是全精度原值(本例 2026=2.327686——IMF DataMapper 同口径只显示 2.3,一位小数即其舍入);series_name 等元数据随行走(WEO 的 62 列元数据里最常用的几列带出,本序列的 DOI 列为空)。行序=期间升序。WEO 流含 1980–2031 的实绩+展望。24 小时 TTL。

economy oecd_sdmx_series

OECD 宏观数据流(经济展望 / 国民账户,结构校验序列键)

参数:

旗标 必填 说明
--flow 是 数据流,目录形 agency,DSD@DF\[,version\](如 OECD.ECO.MAD,DSD_EO@DF_EO,1.5 经济展望、OECD.SDD.NAD,DSD_NAAG@DF_NAAG_I,1.0 国民账户 GDP 章)——裸 DF 名上游 404;agency 带点是常态
--key 是 点分序列键,段数必须=DSD 维数、空段=通配(A.DEU...=年度 × 德国 × 其余全通配)——本面先走结构端点校验,维名列进错误信息
--start 否 期间窗起点(上游 startPeriod)
--end 否 期间窗截止(上游 endPeriod)

注意:****flow 必须用目录形 agency,DSD@DF[,version]——裸 DF 名上游 404 "Could not find Dataflow and/or DSD"(agency 带点是常态:OECD.ECO.MAD);key 段数必须=DSD 维数、空段=通配(A.DEU... = 年度 × 德国 × 其余全通配)——本面先走结构端点本地校验段数、把维名列进错误信息,短 key 的 403("expecting 12 got 6")永远不会发出;数据走 SDMX generic-CSV 通道;整个服务免 key——2026-11-02「需 key」裁定是请求形误诊、已翻案。

$ economy oecd_sdmx_series --flow OECD.SDD.NAD,DSD_NAAG@DF_NAAG_I,1.0 --key A.DEU... --start 2023
{
  "reason": "OECD SDMX OECD.SDD.NAD,DSD_NAAG@DF_NAAG_I,1.0 A.DEU... — 27 observations from 2023, first 2023, latest 2025 = 5169.49861082987 (USD_PPP)",
  "result": {
    "rows": [
      { "flow": "DSD_NAAG@DF_NAAG_I",
        "dims": { "FREQ": "A", "REF_AREA": "DEU", "MEASURE": "B1GQ_R_POP", "UNIT_MEASURE": "PT_B1GQ_POP_PPP_OECD", "CHAPTER": "NAAG_I" },
        "period": "2023", "value": 132.325543634481, "unit_measure": "PT_B1GQ_POP_PPP_OECD",
        "obs_status": "E", "unit_mult": "0", "currency": "_Z", "price_base": "LR", "adjustment": "N" },
      { "flow": "DSD_NAAG@DF_NAAG_I",
        "dims": { "FREQ": "A", "REF_AREA": "DEU", "MEASURE": "B1GQ", "UNIT_MEASURE": "USD_PPP", "CHAPTER": "NAAG_I" },
        "period": "2023", "value": 6069.3347041307, "unit_measure": "USD_PPP",
        "obs_status": "E", "unit_mult": "9", "currency": "_Z", "price_base": "V", "adjustment": "N" }
    ],
    "total": 27,
    "count": 27,
    "dimensions": ["FREQ", "REF_AREA", "MEASURE", "UNIT_MEASURE", "CHAPTER"],
    "params": { "flow": "OECD.SDD.NAD,DSD_NAAG@DF_NAAG_I,1.0", "key": "A.DEU...", "start": "2023", "end": null }
  },
  "evidence": [
    { "quote": "2023 6069.3347041307 (FREQ=A, REF_AREA=DEU, MEASURE=B1GQ, UNIT_MEASURE=USD_PPP, CHAPTER=NAAG_I) [USD_PPP]",
      "url": "https://sdmx.oecd.org/public/rest/data/OECD.SDD.NAD,DSD_NAAG@DF_NAAG_I,1.0/A.DEU.../all" }
  ],
  "source": { "provider": "oecd_sdmx", "execution": "local", "from_cache": false, "observed_at": "2026-11-03T04:25:02.014Z" }
}

怎么读:一行=一个期间观测;dims 按该 DSD 的维序动态(NAAG 这里五维;DSD_EO 三维 REF_AREA.MEASURE.FREQ——各家 DSD 从 3 到 12 维不等);unit_measure 随行走(USD_PPP=购买力平价美元、PT_B1GQ_POP_PPP_OECD=指数化口径),unit_mult 是 10 的幂(9=十亿——本例 6069.3 配 unit_mult 9 实为德国 ~6.07 万亿 PPP GDP);obs_status E=估计。行序=期间升序,reason 的「latest」取末行。结构调用 7 天 TTL、数据 24 小时。

economy un_comtrade_trade

双边贸易镜像(报告国 × 伙伴 × 商品 × 流向)

参数:

旗标 必填 说明
--reporter 是 报告国:ISO-3(USA)或数字地区码(842)
--period 是 报告期:2023 或 202301
--partner 否 伙伴方:ISO-3 或数字码(0 / W00 = 世界合计)
--cmd 否 商品码,逗号列表(TOTAL = 全部商品)
--flow 否 流向:X 出口 / M 进口 / X,M 双向
--type-code 否 路径段:商品类型(C)
--freq-code 否 路径段:频率(A = 年度)
--cl-code 否 路径段:分类体系(HS)
--max-records 否 每次调用返回条数(1–500)
--partner2 否 第二伙伴方(上游 partner2Code;ISO-3 或数字码,同 --partner 解析——镜像流的经手国腿)
--customs 否 海关制度过滤(上游 customsCode;取值见 Comtrade 参照表)
--mot 否 运输方式过滤(上游 motCode;数字码,取值见 Comtrade 参照表)

注意:reporter / partner 必须经地区参照表翻译——直传 ISO3 上游回 400;参照表含历史行与同名重复行(USA 同时有 840/841/842),翻译规则=丢弃括号注记的历史行 + 取最短现行名;公共 preview 面单次上限 500 条,且只到总量级口径;12 小时 TTL。

$ economy un_comtrade_trade --reporter USA --period 2023 --partner DEU --cmd TOTAL --flow X
{
  "reason": "UN Comtrade USA × DEU — 2023, cmd TOTAL, flow X: 1 rows, top Export TOTAL = 76472551326.0 USD",
  "result": {
    "rows": [
      { "type_code": "C", "freq_code": "A", "period": "2023", "ref_year": 2023,
        "reporter_code": 842, "reporter_iso3": "USA", "reporter_name": "USA",
        "flow_code": "X", "flow_name": "Export",
        "partner_code": 276, "partner_iso3": "DEU", "partner_name": "Germany",
        "partner2_code": 0, "partner2_iso3": "W00", "classification_code": "H6",
        "cmd_code": "TOTAL", "cmd_name": "All Commodities",
        "customs_code": "C00", "mot_code": 0, "mot_name": "TOTAL MOT",
        "qty_unit_code": -1, "qty": 0.0, "net_weight": 0.0,
        "cif_value": null, "fob_value": 76472551326.0, "primary_value": 76472551326.0,
        "is_aggregate": true, "is_reported": false }
    ],
    "total": 1,
    "count": 1,
    "elapsed": "0.78 secs"
  },
  "evidence": [
    { "quote": "2023 USA → DEU Export TOTAL = 76472551326.0 USD",
      "url": "https://comtradeplus.un.org/" }
  ],
  "source": { "provider": "un_comtrade", "execution": "local", "from_cache": false, "observed_at": "2026-11-02T10:38:50.837Z" }
}

**怎么读:**一行=一个(报告国 × 伙伴 × 商品 × 流向)观测;primary_value 是美元值,fob_value / cif_value 按流向给口径(出口看 FOB、进口看 CIF——本例是出口,故 fob_value 与主值相同、cif_value 为 null)。reporter_code / partner_code 是 Comtrade 的数字地区码(USA=842、DEU=276),ISO3 由本层经地区参照表翻译。

economy unsd_sdg_indicators

UN SDG 指标目录(17 目标 × 251 指标 × series 码)

参数:

旗标 必填 说明
--page 否 本地页切(上游一次发整本目录)
--per-page 否 本地页大小(1–500,默认 50)
--search 否 关键词本地扫描(指标码 / 描述 / series 码)——扫的是整本目录,不是当前页

注意:分页(--page/--per-page)是本地切页不是上游翻页——--search 先整本滤再切页,所以关键词命中不受页码影响;目录按季度发布滚动(release 字段在 series 行里)。

$ economy unsd_sdg_indicators --search poverty
{
  "reason": "UNSD SDG indicator catalog — 4 indicators match the keyword, 4 on this page, top 1.1.1 (goal 1, 2 series) = Proportion of the population living below the international poverty line by sex,",
  "result": {
    "rows": [
      { "goal": "1", "target": "1.1", "code": "1.1.1",
        "description": "Proportion of the population living below the international poverty line by sex, age, employment status and geographic location (urban/rural)",
        "tier": "1", "uri": "/v1/sdg/Indicator/1.1.1",
        "series_count": 2, "series_codes": ["SI_POV_DAY1", "SI_POV_EMP1"] }
    ],
    "total": 4,
    "count": 4
  },
  "evidence": [
    { "quote": "1.1.1 (goal 1) — Proportion of the population living below the international poverty line by sex, [SI_POV_DAY1, SI_POV_EMP1]",
      "url": "https://unstats.un.org/SDGAPI/v1/sdg/Indicator/1.1.1" }
  ],
  "source": { "provider": "unsd_sdg", "execution": "local", "from_cache": false, "observed_at": "2026-11-03T02:10:43.376Z" }
}

怎么读:一行=一个 SDG 指标,series 码嵌在行里(series_codes——取值面 unsd_sdg_series 靠它定位);goal/target 给出目标层级。251 指标 / 713 series 码 / 17 目标;--search 扫的是整本目录(上游一次发全量,分页在本地做)。7 天 TTL。

economy unsd_sdg_series

UN SDG 序列观测值(目标 × 地理 × 年)

参数:

旗标 必填 说明
--series 是 SDG series 码(如 SI_POV_DAY1、DC_ODA_POVLG——用 unsd_sdg_indicators 列候选)——只走 series 粒度,整指标端点是 320 万行巨墙、永不调用
--geo 否 地理过滤,本地执行(匹配 geoAreaCode 或 geoAreaName,不分大小写)——上游 area 参数是装饰品(带不带字节全同)
--time 否 期间过滤(上游 timePeriod,如 2020)——该端点唯一有效的上游过滤
--page 否 页码,1 起(上游翻页)
--page-size 否 每页条数(1–1000,默认 100)

注意:****--geo 是本地过滤——上游 area 参数是装饰品(带与不带字节全同),且本地滤只作用于当前页(目标地区不在本页就不出现——配 --time 收窄或 --page-size 拉大再滤);只走 series 粒度——整指标端点单指标 320 万行,本面永不调用;--time 是该端点唯一有效的上游过滤。

$ economy unsd_sdg_series --series DC_ODA_POVLG --geo China --time 2020
{
  "reason": "UNSD SDG series DC_ODA_POVLG — 1 rows on this page of 138 total, geo China (local filter), period 2020, top China 2020 = 0.000165",
  "result": {
    "rows": [
      { "series": "DC_ODA_POVLG",
        "series_description": "Official development assistance grants for poverty reduction, by recipient countries (percentage of GNI)",
        "goal": "1", "target": "1.a", "indicator": "1.a.1",
        "geo_area_code": "156", "geo_area_name": "China",
        "period": "2020", "value": "0.000165", "value_type": "Float",
        "attributes": { "Nature": "C", "Units": "PERCENT" },
        "dimensions": { "Reporting Type": "G" },
        "source": "The Organisation for Economic Co-operation and Development (OECD).",
        "footnotes": ["Commitments, Based on OECD, CRS database, 2026, Current USD million, As percentage of GNI"] }
    ],
    "total": 138,
    "count": 1,
    "total_pages": 2,
    "page": 1,
    "geo_filtered": true
  },
  "evidence": [
    { "quote": "China (156) 2020 = 0.000165",
      "url": "https://unstats.un.org/SDGAPI/v1/sdg/Series/Data?seriesCode=DC_ODA_POVLG" }
  ],
  "source": { "provider": "unsd_sdg", "execution": "local", "from_cache": false, "observed_at": "2026-11-03T02:11:12.884Z" }
}

怎么读:一行=一个地理 × 期间的序列观测;value 是字符串(value_type 标类型),attributes(Nature=C 国家数据/G=全球监测)与 dimensions(报告口径 N 国家/G 全球/R 区域)随行走。total 是上游口径的全量行数(本例 2020 期共 138 行),geo_filtered 标记本地滤已生效。24 小时 TTL。

economy wb_countries

世行国家参照表(ISO3 × 收入档)

参数:

旗标 必填 说明
--page 否 页码,1 起(默认 1)
--per-page 否 每页条数(默认 100)

**注意:**296 条里含聚合地区(世界 / 区域合计)——不是纯主权国清单;聚合条目的 income_level 读作 Aggregates;默认每页 100 条,取全表用 --per-page 300。

$ economy wb_countries --per-page 5
{
  "reason": "World Bank country reference — 296 entries in total, 5 on this page, top ABW Aruba (High income)",
  "result": {
    "rows": [
      { "iso3": "ABW", "iso2": "AW", "name": "Aruba", "region_id": "LCN",
        "region_name": "Latin America & Caribbean ", "admin_region": null,
        "income_level_id": "HIC", "income_level": "High income",
        "lending_type_id": "LNX", "lending_type": "Not classified",
        "capital_city": "Oranjestad", "longitude": "-70.0167", "latitude": "12.5167" },
      { "iso3": "AFE", "iso2": "ZH", "name": "Africa Eastern and Southern", "region_id": "NA",
        "region_name": "Aggregates", "admin_region": null,
        "income_level_id": "NA", "income_level": "Aggregates",
        "lending_type_id": null, "lending_type": "Aggregates",
        "capital_city": "", "longitude": "", "latitude": "" }
    ],
    "total": 296,
    "count": 5
  },
  "evidence": [
    { "quote": "ABW Aruba (High income, Latin America & Caribbean )",
      "url": "https://data.worldbank.org/country/ABW" }
  ],
  "source": { "provider": "wb", "execution": "local", "from_cache": false, "observed_at": "2026-11-02T10:37:45.626Z" }
}

**怎么读:**一行=一个国家或一个聚合地区;income_level(收入档)是买家筛选维,region_name 是地理分组。表里混着聚合条目(AFE 这类区域合计),按 ISO3 取国家时别把聚合当国家。7 天 TTL。

economy wb_ids_indicators

世行外债统计目录(577 个 DT.* 债务指标码)

参数:

旗标 必填 说明
--page 否 页码,1 起(默认 1)
--per-page 否 每页条数(默认 600——整本 IDS 目录一页装下)
--search 否 关键词,只扫当前页(不是上游过滤)

**注意:**值面与目录面的 source 参数语义相反——目录必须 source=6,值面带 source=6 上游回 175 indicator was not found(API 静默回落 sourceid 2 才救回);默认 --per-page 600 一页装下整本 577 条;--search 是本地扫描当前页。

$ economy wb_ids_indicators --search "external debt"
{
  "reason": "World Bank International Debt Statistics catalog (source 6) — 577 indicators in total, 121 on this page, top DT.AMT.DECB.CD = Principal repayments on external debt, central bank (PPG) (AMT, current US$) — the keyword filter is a local scan over this page — the DT.* values are served by wb_wdi_values WITHOUT --source",
  "result": {
    "rows": [
      { "indicator_code": "DT.AMT.DECB.CD",
        "name": "Principal repayments on external debt, central bank (PPG) (AMT, current US$)",
        "unit": null, "source_id": "6",
        "source_name": "International Debt Statistics" }
    ],
    "total": 577,
    "count": 121
  },
  "evidence": [
    { "quote": "DT.AMT.DECB.CD = Principal repayments on external debt, central bank (PPG) (AMT, current US$)",
      "url": "https://data.worldbank.org/indicator/DT.AMT.DECB.CD" }
  ],
  "source": { "provider": "wb", "execution": "local", "from_cache": false, "observed_at": "2026-11-03T02:11:38.272Z" }
}

**怎么读:*一行=一个 DT. 外债指标码;七族谱=存量(DOD)/利息(INT)/拨付(AMT)/净流(NFL)/偿还(TDS)/宽免(DIS)/净转移(NTR)+国际收支镜像。source_id=6 即 IDS。取值走 wb_wdi_values 且不带 --source(值面带 source=6 会炸 175)。7 天 TTL。

economy wb_wdi_indicators

世行指标目录(WDI 指标码)

参数:

旗标 必填 说明
--source 否 世行源 id,2 = WDI(默认 2)——不给就是全世行指标目录
--page 否 页码,1 起(默认 1)
--per-page 否 每页条数(默认 500)
--search 否 关键词,只扫当前页(不是上游过滤)——页外候选要翻页

**注意:**不带 --source 就是全世行指标目录(约 2.9 万条),本面缺省钉 2;--search 只扫当前页(页外候选看不见);7 天 TTL。

$ economy wb_wdi_indicators --source 2 --search GDP
{
  "reason": "World Bank indicator catalog (source 2) — 1,498 indicators in total, 32 on this page, top BG.GSR.NFSV.GD.ZS = Trade in services (% of GDP) — the keyword filter is a local scan over this page",
  "result": {
    "rows": [
      { "indicator_code": "BG.GSR.NFSV.GD.ZS", "name": "Trade in services (% of GDP)", "unit": null,
        "source_id": "2", "source_name": "World Development Indicators" },
      { "indicator_code": "BM.KLT.DINV.WD.GD.ZS", "name": "Foreign direct investment, net outflows (% of GDP)", "unit": null,
        "source_id": "2", "source_name": "World Development Indicators" }
    ],
    "total": 1498,
    "count": 32
  },
  "evidence": [
    { "quote": "BG.GSR.NFSV.GD.ZS = Trade in services (% of GDP) (World Development Indicators)",
      "url": "https://data.worldbank.org/indicator/BG.GSR.NFSV.GD.ZS" }
  ],
  "source": { "provider": "wb", "execution": "local", "from_cache": false, "observed_at": "2026-11-02T10:37:40.562Z" }
}

怎么读:一行=一个指标码(indicator_code 是唯一命名);source_id=2 即 WDI。--search 是本地关键词扫描(扫当前页的名字 / 单位 / 说明),不是上游过滤——按词找指标要翻页或换更窄的关键词。

economy wb_wdi_values

世行发展指标值(国家 × 年 × 指标码)

参数:

旗标 必填 说明
--country 是 国家 ISO-3 码,多国用 ; 拼接(CHN;JPN)
--indicator 是 一个 WDI 指标码(如 NY.GDP.MKTP.CD)——多个码上游回 120 Invalid value
--date 否 年份或区间:2020 或 2020:2023
--per-page 否 每页条数(默认 100)

**注意:**一次一个指标码——多码以 ; 拼接上游回 120 Invalid value(体里的 message,不是 HTTP 码);多国用 --country CHN;JPN;缺观测是 null 不是 0。

$ economy wb_wdi_values --country CHN --indicator NY.GDP.MKTP.CD --date 2020:2023
{
  "reason": "World Bank WDI: CHN × NY.GDP.MKTP.CD — 4 rows (total 4), last updated 2026-10-08, top CHN 2023 = 18270356654533.2",
  "result": {
    "rows": [
      { "indicator_code": "NY.GDP.MKTP.CD", "indicator_name": "GDP (current US$)",
        "country_iso3": "CHN", "country_name": "China", "year": "2023",
        "value": 18270356654533.2, "unit": null, "obs_status": null, "decimal": 0 },
      { "indicator_code": "NY.GDP.MKTP.CD", "indicator_name": "GDP (current US$)",
        "country_iso3": "CHN", "country_name": "China", "year": "2022",
        "value": 18316765021690.2, "unit": null, "obs_status": null, "decimal": 0 }
    ],
    "total": 4,
    "count": 4,
    "last_updated": "2026-10-08"
  },
  "evidence": [
    { "quote": "CHN 2023 = 18270356654533.2 (GDP (current US$))",
      "url": "https://data.worldbank.org/indicator/NY.GDP.MKTP.CD?locations=CHN" }
  ],
  "source": { "provider": "wb", "execution": "local", "from_cache": false, "observed_at": "2026-11-02T10:37:33.803Z" }
}

怎么读:一行=一个国家 × 一年的指标值;value 为 null 就是缺观测(不填零);last_updated 是上游该序列的最近更新日。跨国比较用同一指标码,不同口径(世行 vs 欧盟官方)不合并。24 小时 TTL。

economy who_xmart_indicators

WHO 指标目录(带取值实体集)

参数:

旗标 必填 说明
--filter 否 上游 OData $filter 逐字透传(如 startswith(IND_NAME,'TB_'))——按词找指标走这一条
--top 否 上游 $top 页大小(1–5000,默认 500)
--skip 否 上游 $skip 偏移(默认 0)
--search 否 关键词,只扫当前页(不是上游过滤)

注意:****按词找指标走 --filter(上游 OData $filter 逐字透传,如 startswith(IND_NAME,'TB_'))——--search 只是本地扫当前页(--search tuberculosis --top 20 实测 0 行:前 20 条目录里没有该词);$filter 写错上游回 400,本层映射为 usage_error 而非上游故障。

$ economy who_xmart_indicators --filter "startswith(IND_NAME,'TB_')" --top 20
{
  "reason": "WHO xMart indicator directory — 40 indicators match the upstream $filter, 20 on this page, top TB_ppm_pulm_num — Number of notifications of people diagnosed with a new episode of pulmonary TB",
  "result": {
    "rows": [
      { "IND_ID": "1297FB8CC21162", "IND_NAME": "TB_ppm_pulm_num",
        "IND_NAME_FULL": "Number of notifications of people diagnosed with a new episode of pulmonary TB",
        "IND_NAME_SHORT": "TB_ppm_pulm_num", "IND_CODE_GHO": "TB_ppm_pulm_num",
        "VALUE_TYPE": "COUNT", "IND_UNIT": "Number",
        "IND_URI_API": "https://xmart-api-public.who.int/DATA_/RELAY_TBPPM",
        "IND_URI_WEB": "https://data.who.int/indicators/1297FB8CC21162",
        "IND_PUBLISH_TIME_PREV": "2024-10-10", "DATA_PROVENANCE": "COUNTRY_REPORTED" },
      { "IND_ID": "94BFA31A52F4E8", "IND_NAME": "TB_e_attr_risk_num",
        "IND_NAME_FULL": "TB_e_attr_risk_num", "IND_NAME_SHORT": "TB_e_attr_risk_num",
        "IND_CODE_GHO": "TB_e_attr_risk_num",
        "VALUE_TYPE": "COUNT", "IND_UNIT": "number",
        "IND_URI_API": "https://xmart-api-public.who.int/DATA_/RELAY_TB",
        "IND_URI_WEB": "https://data.who.int/indicators/A1B2C3DE4F5G6H",
        "IND_PUBLISH_TIME_PREV": "2023-10-18", "DATA_PROVENANCE": "OFFICIAL_ESTIMATE" }
    ],
    "total": 40,
    "count": 20
  },
  "evidence": [
    { "quote": "TB_ppm_pulm_num — Number of notifications of people diagnosed with a new episode of pulmonary TB",
      "url": "https://data.who.int/indicators/1297FB8CC21162" }
  ],
  "source": { "provider": "who_xmart", "execution": "local", "from_cache": false, "observed_at": "2026-11-02T10:48:22.037Z" }
}

怎么读:一行=一个 WHO 指标;IND_URI_API 的尾段=该指标的取值实体集名(who_xmart_values 靠它定位数据表)。IND_NAME 有时是长句而不是指标码,取值面认的是 IND_NAME 等于你手上那个码的那一行。24 小时 TTL。

economy who_xmart_values

WHO 指标观测值(指标 × M49 地理 × 年)

参数:

旗标 必填 说明
--indicator 是 指标码(如 TB_ppm_enrol_tx_prct)
--geo 否 ISO-3 国家码或裸 M49 码(经 REF_GEO_WIDE 翻译)
--year 否 年份(DIM_TIME 的字符串值,如 2023)
--entity-set 否 取值实体集(同一指标名有多个候选时必填)
--top 否 上游 $top 页大小(1–5000,默认 500)
--skip 否 上游 $skip 偏移(默认 0)

注意:同一指标名可能对应多个实体集——本层不自动取首位,候选多于一个即 usage_error 并列出候选,用 --entity-set 指定;--year 是字符串值(2023);地理参照表 7 天 TTL。

$ economy who_xmart_values --indicator TB_ppm_enrol_tx_prct --geo PAK --year 2023
{
  "reason": "WHO xMart TB_ppm_enrol_tx_prct (entity set RELAY_TBPPM) — 11 observations, geo 586, 2023, top 2023 586 = 100.0",
  "result": {
    "rows": [
      { "IND_ID": "TBABF2ETB_ppm_enrol_tx_prct", "IND_CODE": "TB_ppm_enrol_tx_prct",
        "DIM_TIME": "2023", "DIM_TIME_TYPE": "YEAR",
        "DIM_GEO_CODE_M49": "586", "DIM_GEO_CODE_TYPE": "COUNTRY",
        "DIM_1_CODE": "DIM_OWNERSHIP", "DIM_MEMBER_1_CODE": "PRIVATE_FOR_PROFIT",
        "DIM_2_CODE": "DIM_LEVEL", "DIM_MEMBER_2_CODE": "PRIMARY",
        "VALUE_NUMERIC": 100.0, "VALUE_LABEL": null, "OBSERVATION_STATUS": null }
    ],
    "total": 11,
    "count": 11
  },
  "evidence": [
    { "quote": "2023 586 PRIVATE_FOR_PROFIT = 100.0",
      "url": "https://xmart-api-public.who.int/DATA_/RELAY_TBPPM" }
  ],
  "source": { "provider": "who_xmart", "execution": "local", "from_cache": false, "observed_at": "2026-11-02T10:38:25.121Z" }
}

**怎么读:**一行=一个观测:年 × M49 地理 × 分层维度(DIM_1_CODE / DIM_MEMBER_1_CODE 等);VALUE_NUMERIC 是数值。地理键是 M49 字符串(本层经 REF_GEO_WIDE 把 ISO3 翻过来),DIM_TIME 也要带引号——两者都是字符串型。

使用边界

  • 同一指标不同口径不合并:世行 WDI 与 Eurostat 的同名指标(GDP / 人口)统计口径不同,按用途选一套,别混算。
  • 汇率方向先确认:ECB 的值是「1 EUR = X 单位该币」;世行与 Eurostat 的货币单位列(unit)常为 null,别默认它等于美元。
  • 缺观测是 null 不是 0:世行 WDI 的空值、FRED 的 .、Eurostat 的空格——本层一律留 null,绝不补零。