从欧洲央行获取今天的货币 - pandassdmx?

Get currency of today from ECB - pandassdmx?

我需要从欧洲央行获得 USD/EUR 和 CHF/EUR 的最新货币汇率。 推荐的方法是什么?

版本 1: 尝试过 pandasdmx 但不知道提取值的最有效方法:

ecb = sdmx.Request("ECB")
parameters = {
    "startPeriod": "2021-12-29",
    "endPeriod": "2021-12-29",
}
data_response = ecb.data(
    resource_id="EXR",
    key={"CURRENCY": ["CHF", "USD"]},
    params=parameters,
)

如何解析 data_response 以获取 USD 和 CHF 的值?

版本 2: 我发现的另一种方法是访问

request_url = "https://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml"

解析 XML 很容易,但第一个版本似乎是更新的版本。

有什么想法吗?

你可以做到

data = data_response.to_pandas()
data

获得 Pandas 系列的结果:

FREQ  CURRENCY  CURRENCY_DENOM  EXR_TYPE  EXR_SUFFIX  TIME_PERIOD
D     CHF       EUR             SP00      A           2021-12-29     1.0380
      USD       EUR             SP00      A           2021-12-29     1.1303
Name: value, dtype: float64

data系列的值是您所追求的两种汇率。前面的所有字段都是多索引的一部分,因此要获得 CHF,您可以使用

data[('D', 'CHF', 'EUR', 'SP00', 'A', '2021-12-29')]

这将 return

1.038

或者您可以使用 .iloc

data.iloc[0]

瑞士法郎,data.iloc[1]美元