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

如何用Python调用OECD的SDMX API获取指定土地覆盖数据?

解决OECD SDMX数据查询问题

方法一:直接请求CSV格式(最可靠)

OECD的SDMX接口支持直接返回CSV格式,只需把原URL里的GetData替换为GetData.csv,就能绕过SDMX库的解析问题:

import pandas as pd

# 修改后的CSV请求URL
url = "https://stats.oecd.org/restsdmx/sdmx.ashx/GetData.csv/LAND_COVER_FUA/AUS+AUT.FOREST+GRSL+WETL+SHRUBL+SPARSE_VEGETATION+CROPL+URBAN+BARE+WATER.THOUSAND_SQKM+PCNT/all?startTime=1992&endTime=2019"

# 读取CSV到DataFrame
df = pd.read_csv(url)
print(df.head())

方法二:修复pandasdmx的使用方式

如果一定要用pandasdmx库,需按照OECD的SDMX规范构建查询参数,而非直接拼接URL:

import pandasdmx as sdmx

# 初始化OECD数据源
oecd = sdmx.Request('OECD')

# 按维度拆分查询参数
data_response = oecd.data(
    resource_id='LAND_COVER_FUA',
    key={
        'REF_AREA': 'AUS,AUT',
        'LAND_COVER': 'FOREST,GRSL,WETL,SHRUBL,SPARSE_VEGETATION,CROPL,URBAN,BARE,WATER',
        'MEASURE': 'THOUSAND_SQKM,PCNT'
    },
    params={'startTime': '1992', 'endTime': '2019'}
)

# 转换为DataFrame格式
df = sdmx.to_pandas(data_response)
print(df.head())

常见排查点

  • 确认网络可正常访问OECD官网,必要时配置代理
  • 验证参数中的维度代码(如SPARSE_VEGETATION)是否匹配数据集的官方代码列表,可通过OECD数据详情页核对
  • 升级pandasdmx到最新版本:执行pip install --upgrade pandasdmx

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 11:32:04