-1

次の方法で時系列データを保存するために 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 プログラムがブログの進行状況に関するいくつかの指標を計算します。

質問に対するこの回答Is this valid YAML? は、YAML が部分ドキュメントの概念をサポートしていることを示唆しており、上記のようにフォーマットされている場合、各ブログ エントリは個別のエンティティと見なされます。今、気になっていることが二つあります。

  1. YAML パーサーentrydateは、各要素の先頭にあるように、各エンティティ (この場合はブログ エントリ) を識別できますか? yamllintonline yaml parserの両方で、解析された出力が並べ替えられ、entrydate他のアイテムと一緒にまとめられたため、これを尋ねます。
  2. YAML はこのタスクにとって完全にやり過ぎですか? 保存されたデータは人間が読める形式であり、必要に応じて手動で簡単にドキュメントを編集できるため、適切だと思います。

PS: これには JSON を検討しましたが、YAML は見た目が簡単すぎると感じました。

4

1 に答える 1

3

YAML パーサーは、各要素の先頭にある entrydate によって各エンティティ (この場合はブログ エントリ) を識別できますか? yamllint とオンライン yaml パーサーの両方で、解析された出力が並べ替えられ、entrydate が他の項目と一緒にまとめられたので、これを尋ねます。

あなたがここで何を求めているのか完全にはわかりません。これは有効な YAML であり、辞書のリストになります。各ディクショナリには、いくつかのキー (説明、エントリ日付、場所、タグ、タイトル) があります。YAML パーサーでデータを読み取ったら、これらのキーのいずれかを参照できます。出力でどれが「最初」に表示されるかは、通常は重要ではありません。一般に、ディクショナリの実装では、キーが追加される順序は保持されません。

リストの順序は保持されるため、 entrydate=を含むエントリ5:55 AM 1/1/2013は常にリストの最初になります (ファイルの最初のエントリである限り)。

YAML はこのタスクにとって完全にやり過ぎですか? 保存されたデータは人間が読める形式であり、必要に応じて手動で簡単にドキュメントを編集できるため、適切だと思います。

シンプルで読みやすい形式で構造化データを保存しようとしています。それが YAML の目的です。

于 2013-01-11T21:24:06.470 に答える