用于读取和写入具有元数据标题的CSV文件的实用函数。
项目描述
libtabular
一个通用的库,用于读取和写入表格数据(CSV、TSV、gsheets、ods、xlsx)。
提案
想象一下,使用类似于csv.DictReader
的API,您可以“打开”和“读取”任何表格数据源(CSV、TSV、gsheets、ods、xlsx),而不必担心数以百万计的库和身份验证API。
带元数据标题的表格数据
libtabular
提供的主要“新特性”是一种自动解析表格数据(例如CSV)中“元数据标题”的方法。这些“CSV元数据标题”与在某些静态站点生成器中使用的Markdown文件中出现的YAML标题直接对应。
示例
使用libtabular
,您可以通过几个命令从源文件“提取”数据和元数据
>>> from libtabular import fromcsvwithheader
>>> table = fromcsvwithheader('samples/minimal.csv')
>>> table.metadata
{'key1': 'value1',
'key2': 'value2',
'title': 'Minimal sample document',
'description': 'This is a sample document that consists of four sections',
'doc_id': 'Sample-doc-001',
'comment': 'This is not part of document metadata; just a comment...'}
>>> list(table.dicts())
[{'section_id': '002',
'slug': 'dataformat',
'title': 'CSV files with metadata',
'description': 'Description of the CSV-with-metadata-header data format',
'url': 'https://github.com/rocdata/libtabular/blob/main/docs/dataformat.md'},
{'section_id': '003',
'slug': 'tutorial',
'title': 'Tutorial',
'description': 'Hands-on examples of using libtabular',
'url': 'https://github.com/rocdata/libtabular/blob/main/docs/tutorial.md'},
{'section_id': '004',
'slug': 'backends',
'title': 'Backends',
'description': 'Description of integrations to various spreadsheets formats and APIs ',
'url': 'https://github.com/rocdata/libtabular/blob/main/docs/backends.md'}]
>>> table.header
('section_id', 'slug', 'title', 'description', 'url')
为什么需要这个功能?
在课程文档库(见rocdata.global)上的最近工作中,需要一种易于使用的导入和导出课程数据的过程,例如
- 课程标准文档(指定学生应该学习什么的Excel表)
- 内容集合数据(包含指向有用学习资源的链接的Excel表)
- 内容相关性数据(包含课程标准和相关学习资源之间“链接”的Excel表)
电子表格/CSV格式是教师和管理人员的一个自然选择,因为他们有处理这种文件类型的经验,因此开发便于读写表格数据的工具是值得的。
- 课程委员会和教育部可以发布课程标准文档信息,以机器可读的格式(而不是发布PDF,发布电子表格)。
- 教师可以下载易于使用的电子表格格式标准数据(使用适合您年级的标准来规划您的课程)。
- 课程专家和教师可以下载带有适当标题的空白模板,在需要指定标准文档或内容关联时填写。
相关项目
csv
在stdlib中pandas.read_csv
增加了更多功能。petl
具有大量加载CSV、TSV、Excel和其他格式的功能。此外,petl
库还支持方便的列转换。还有一个PR用于与Google Sheets集成(尚未合并)。pyexcel
是适用于所有电子表格格式的通用后端(csv、xlsx、ods等)。- 有关其他电子表格Python库,请参阅http://www.python-excel.org/
待办事项
- 添加
fromxlsxwithheader
以解析Excel文件 - 基于
pyexcel
添加fromodswithheader
- 添加最小测试以检查所有源格式产生相同的数据
- 添加
prependheader(metadata, header, data)
函数以以该格式导出,理想情况下是适用于任何输出格式(csv、ods、xlsx)的通用工作流程。
路线图
- 添加树解析逻辑工具?(libtree ;)
- 包含语句(将另一个.CSV文件作为当前位置的节点包含在内)
- 模板的可选增强:添加标题等格式化(仅适用于Excel和ODS)
想法
- 研究CSVW标准库,特别是验证选项。
- 研究
tablib
作为petl
的替代基础(尽管似乎不太灵活)。
项目详情
关闭
libtabular-0.0.3.tar.gz的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 95368354408938613c11c25399fa237f45ae059404f39d1c8727ff8bc9f8d4d0 |
|
MD5 | 7340d8b2378f387ffefccabd815007aa |
|
BLAKE2b-256 | d0f3ed324819051c9dcf258474105ad2af0286e99dbcf99a8c9d8f3b970ae6cf |