我正在考虑使用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支持部分文档的概念,如果格式如上,每个博客条目都会被视为一个单独的实体。现在我担心两件事。
entrydate
标识每个实体(或博客条目,在本例中),因为它位于每个元素的顶部?我问这个问题,因为在yamllint和online yaml parser中,已解析的输出已重新排序,entrydate
与其他项目一起被归为一类。答案 0 :(得分:3)
YAML解析器是否能够通过entrydate标识每个实体(或博客条目,在本例中),因为它位于每个元素的顶部?我问这个是因为在yamllint和在线yaml解析器中,解析的输出被重新排序,并且entrydate与其他项目一起被集中在一起。
我不清楚你在这里问的是什么。这是有效的YAML,它将产生一个词典列表。每个字典都有几个键(描述,入口日期,位置,标签,标题)。使用YAML解析器读取数据后,您可以引用任何这些键;哪一个在输出中出现“第一”通常是不重要的。通常,字典实现不会保留添加键的顺序。
列表的排序将被保留,因此entrydate
= 5:55 AM 1/1/2013
的条目将始终是列表中的第一个条目(只要它是第一个在文件中输入。)
YAML对此任务是否完全过度杀伤?我觉得这很贴切,因为存储的数据是人类可读的格式,如果需要,我可以轻松地手工编辑文档。
您尝试以简单易读的格式存储结构化数据。这就是YAML的用途。