YAML的时间顺序数据

时间:2013-01-11 21:06:42

标签: c# python yaml markdown

我正在考虑使用YAML以下列方式存储时间顺序数据:

- entrydate: 5:55 AM 1/1/2013
  title: blog post 1
  tags: [yaml, json]
  description: what have i learned today 1
  location: scottsdale
- entrydate: 5:55 AM 1/2/2013
  title: blog post 2
  tags: [general,software-development]
  description: what have i learned today 2
  location: scottsdale

此YAML文档将每天由收集数据的C#应用​​程序更新,并在周/月末Python程序计算有关博客进度的一些指标。

问题This answer

Is this valid YAML?表明YAML支持部分文档的概念,如果格式如上,每个博客条目都会被视为一个单独的实体。现在我担心两件事。

  1. YAML解析器是否能够通过entrydate标识每个实体(或博客条目,在本例中),因为它位于每个元素的顶部?我问这个问题,因为在yamllintonline yaml parser中,已解析的输出已重新排序,entrydate与其他项目一起被归为一类。
  2. YAML对此任务是否完全过度杀伤?我觉得这很贴切,因为存储的数据将是人类可读的格式,如果需要,我可以轻松地手工编辑文档。
  3. PS:我考虑过JSON,但我觉得YAML太容易了。

1 个答案:

答案 0 :(得分:3)

  

YAML解析器是否能够通过entrydate标识每个实体(或博客条目,在本例中),因为它位于每个元素的顶部?我问这个是因为在yamllint和在线yaml解析器中,解析的输出被重新排序,并且entrydate与其他项目一起被集中在一起。

我不清楚你在这里问的是什么。这是有效的YAML,它将产生一个词典列表。每个字典都有几个键(描述,入口日期,位置,标签,标题)。使用YAML解析器读取数据后,您可以引用任何这些键;哪一个在输出中出现“第一”通常是不重要的。通常,字典实现不会保留添加键的顺序。

列表的排序将被保留,因此entrydate = 5:55 AM 1/1/2013的条目将始终是列表中的第一个条目(只要它是第一个在文件中输入。)

  

YAML对此任务是否完全过度杀伤?我觉得这很贴切,因为存储的数据是人类可读的格式,如果需要,我可以轻松地手工编辑文档。

您尝试以简单易读的格式存储结构化数据。这就是YAML的用途。