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

如何调整Pandas代码适配OECD新版统计API以正常获取数据?

调整OECD新版API代码的解决方案

要让代码适配OECD新版API,需要从以下几个方面调整:

  1. 替换API基础请求前缀
    默认的pdmx.Request("OECD")调用的是旧版API地址,我们需要自定义数据源配置,指定新版的base_url:
import pdmx

# 配置新版OECD API的数据源信息
oecd_new_config = {
    "OECD_NEW": {
        "url": "https://sdmx.oecd.org/public/rest/data/",
        "headers": {},
        "timeout": 30,
    }
}

# 用自定义配置初始化Request实例
oecd = pdmx.Request("OECD_NEW", config=oecd_new_config)
  1. 规范请求参数的传递方式
    新版API要求startPeriod这类参数单独传递,不能混在key字符串里,同时resource_id要符合SDMX标准格式:
# 请求HH_DASH数据集,指定维度、时间范围等参数
data = oecd.data(
    resource_id="OECD.SDD.NAD,DSD_HHDASH@DF_HHDASH_CTRY,1.0",
    key="Q.DEU..",  # 维度结构:频率.国家..(按需调整维度值)
    startPeriod="2021-Q3",
    dimensionAtObservation="AllDimensions"
).to_pandas()
  1. 修复语法错误
    原代码最后一行把变量赋值和变量名写在同一行,拆分后修正为:
df = pd.DataFrame(data).reset_index()
# 可打印查看结果
print(df)

完整可运行代码

import pdmx
import pandas as pd

# 配置新版OECD API地址
oecd_new_config = {
    "OECD_NEW": {
        "url": "https://sdmx.oecd.org/public/rest/data/",
        "headers": {},
        "timeout": 30,
    }
}

oecd = pdmx.Request("OECD_NEW", config=oecd_new_config)

# 请求目标数据
data = oecd.data(
    resource_id="OECD.SDD.NAD,DSD_HHDASH@DF_HHDASH_CTRY,1.0",
    key="Q.DEU..",
    startPeriod="2021-Q3",
    dimensionAtObservation="AllDimensions"
).to_pandas()

# 转换为DataFrame并重置索引
df = pd.DataFrame(data).reset_index()
print(df)

如果需要批量请求多个国家或指标,只需调整key中的维度值即可,比如请求多国家可写成Q.AUS+DEU+ITA..,指标维度需对应数据集的具体编码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 13:33:21