跳转到主要内容

用于读取和写入具有元数据标题的CSV文件的实用函数。

项目描述

libtabular

一个通用的库,用于读取和写入表格数据(CSV、TSV、gsheets、ods、xlsx)。

提案

想象一下,使用类似于csv.DictReader的API,您可以“打开”和“读取”任何表格数据源(CSV、TSV、gsheets、ods、xlsx),而不必担心数以百万计的库和身份验证API。

带元数据标题的表格数据

libtabular提供的主要“新特性”是一种自动解析表格数据(例如CSV)中“元数据标题”的方法。这些“CSV元数据标题”与在某些静态站点生成器中使用的Markdown文件中出现的YAML标题直接对应。

示例

Minimal sample data format

使用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 (5.8 kB 查看散列)

上传时间

支持者:

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面