C# 年代学数据的YAML

C# 年代学数据的YAML,c#,python,yaml,markdown,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

我正在考虑使用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程序将计算一些关于博客进度的指标

对于这个问题,YAML支持部分文档的概念,如果按照上述格式设置,则每个博客条目都将被视为一个单独的实体。现在我关心两件事

  • YAML解析器是否能够通过
    entrydate
    识别每个元素顶部的每个实体(在本例中是博客条目)?我这样问是因为在和中,解析的输出被重新排序,
    entrydate
    与其他项一起被集中在一起
  • YAML对于这项任务来说是完全的过度使用吗?我觉得它是合适的,因为存储的数据将是人类可读的格式,如果需要,我可以手工编辑文档
  • PS:我考虑过JSON,但我觉得YAML太容易看了

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

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

    列表的顺序将被保留,因此具有
    entrydate
    =
    2013年1月1日凌晨5:55
    的条目将始终是列表中的第一个条目(只要它是文件中的第一个条目)

    YAML对于这项任务来说是完全的过度使用吗?我觉得它是合适的,因为存储的数据将是人类可读的格式,如果需要,我可以手工编辑文档


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

    虽然我不能很好地理解我的第一个问题,但你的答案正是我想知道的。谢谢+为此,我绝对要使用YAML。我知道没有比这更适合这项任务的了。