9

を使用して読み込んだ YAML ファイルからコメント文字列を取得したいと思いますruamel.yamlプロジェクトのドキュメントには API リファレンスがなく、関連する例が見つかりません。コメントにアクセスする正しい方法は何ですか?

import ruamel.yaml

yaml = """\
%YAML 1.2
---
# C1
a: # C2
  # C3
  # C4
  b: 1 # C5
  c: # A comment here will not be parsed properly by ruamel.yaml v0.11.14
  - abc # C6
  - xyz # C7
  # C8
# C9
"""

loaded = ruamel.yaml.round_trip_load(yaml)

# Now what?
4

1 に答える 1

8

ライブラリの作成者は、BitBucket の問題(2016 年 5 月 9 日)でこれについてコメントしています。

コメントの保持は安定していません。たとえば、マッピングのキーと値が同じ行になく、キー (またはキーと値の両方) にコメントがある場合、何かをする必要があります。そして、私の最初の目標は既存のコメントを保存することであり、それほど操作することではありませんでした。

いくつかの実験を通じて、上記の質問で提供されたサンプルコードに対して次のように機能することを確認しました。

print('Comment 1: ' + loaded.ca.comment[1][0].value)
print('Comment 2: ' + loaded.ca.items['a'][2].value)
print('Comment 3: ' + loaded.ca.items['a'][3][0].value)
print('Comment 4: ' + loaded.ca.items['a'][3][1].value)
print('Comment 5: ' + loaded['a'].ca.items['b'][2].value)
print('Comment 6: ' + loaded['a']['c'].ca.items[0][0].value)
print('Comment 7: ' + loaded['a']['c'].ca.items[1][0].value)
print('Comment 8: ' + loaded['a']['c'].ca.end[0].value)
print('Comment 9: ' + loaded['a']['c'].ca.end[1].value)
于 2016-07-07T18:12:07.370 に答える