首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法读取加拿大统计局的sdmx文件

无法读取加拿大统计局的sdmx文件
EN

Stack Overflow用户
提问于 2022-01-23 06:57:35
回答 2查看 165关注 0票数 0

我试图从加拿大统计局 (“加拿大、省和地区”地理级别的XML选项)中读取一些加拿大人口普查数据。我看到xml文件是SDMX格式的,并且提供了一个结构文件,但我不知道如何从xml文件中读取数据。

在Python中似乎有两种选择,分别是pandasdmx和sdmx1,这两种选项都表示它们可以读取本地文件。当我尝试

代码语言:javascript
复制
import sdmx

datafile = '~/Documents/Python/Generic_98-401-X2016059.xml'

canada = sdmx.read_sdmx(datafile)

它似乎读取前903行,然后生成以下内容:

代码语言:javascript
复制
Traceback (most recent call last):
  File "/home/username/.local/lib/python3.10/site-packages/sdmx/reader/xml.py", line 238, in read_message
    raise NotImplementedError(element.tag, event) from None
NotImplementedError: ('{http://www.SDMX.org/resources/SDMXML/schemas/v2_0/message}GenericData', 'start')

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/username/.local/lib/python3.10/site-packages/sdmx/reader/__init__.py", line 126, in read_sdmx
    return reader().read_message(obj, **kwargs)
  File "/home/username/.local/lib/python3.10/site-packages/sdmx/reader/xml.py", line 259, in read_message
    raise XMLParseError from exc
sdmx.exceptions.XMLParseError: NotImplementedError: ('{http://www.SDMX.org/resources/SDMXML/schemas/v2_0/message}GenericData', 'start')

发生这种情况是因为我没有加载sdmx文件的结构( StatsCan链接中的zip文件中的structure _98-401-X2016059.xml)?如果是这样的话,我如何加载它,并告诉sdmx在读取datafile时使用它

sdmx和pandasdmx的文档仅显示从在线提供商加载文件的示例,而不是从本地文件加载文件,因此我陷入困境。我对python的熟悉程度有限,所以我们非常感谢您的帮助。

作为参考,我可以使用rsdmx github的说明读取R中的文件。我希望能够在Python中做同样的/类似的事情。

提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-01-27 21:37:03

按照sdmx1开发人员的说法,StatsCan使用的是旧的、不受支持的SDMX版本(v.2.0)。目前的版本是2.1,rsdmx1只支持这一点(支持即将到来的v.3)。

票数 0
EN

Stack Overflow用户

发布于 2022-01-23 07:54:40

从对文件的粗略检查来看,加拿大统计局似乎不是默认包括在内的来源之一。但是有一个sdmx.add_source函数。我建议您尝试(在加载数据之前)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70819834

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档