web-dev-qa-db-ja.com

YAML複数行配列

YAML では、簡単に 複数行の文字列 を作成できます。ただし、|文字を使用して、(主に構成ファイル内の読みやすさのために)複数行の配列を作成する機能が必要です。

YAMLarray['key1', 'key2', 'key3']として表すことができます。

YAMLsequenceは、ダッシュ、スペース、文字列の順に使用します。

- String1
- String2
- String3

これは['string1', 'string2', 'string3']に評価されます。

YAMLmappingは、YAMLで常に表示されるキーと値のペアの配列です。

Key1: string1
Key2: string2
Key3: string3

これはすべてうまくいきますが、私の人生では、複数行の配列を行う方法を見ることができません。このようなもの:

|
['string1', 'string2', 'string3']
['string4', 'string5', 'string6']

YAMLで複数の配列マッピングを作成し、選択したプログラミング言語でそれらをマージする以外に、多分{ }のようなPythonがYAMLにある複数行配列を実現する方法はありますか?

98
Jimbo

YAML シーケンス配列です。したがって、これはそれを表現する正しい方法です。

key:
  - string1
  - string2      
  - string3
  - string4
  - string5
  - string6

それは次の意味と同じです:

key: ['string1', 'string2', 'string3', 'string4', 'string5', 'string6']

また、単一行の配列を複数の行に分割することもできます。

key: ['string1', 'string2', 'string3', 
  'string4', 'string5', 
  'string6']

さらに、単一行の配列に複数行の文字列があります。

key: ['string1', 'long
  string', 'string3', 'string4', 'string5', 'string6']
151
Steve Bennett

これを試しましたか?

-
  name: Jack
  age: 32
-
  name: Claudia
  age: 25

これを取得します:[{"name"=>"Jack", "age"=>32}, {"name"=>"Claudia", "age"=>25}]YAML Rubyクラスを使用します)。

7
Iwan B.

以下が機能します:

myarray: [
  String1, String2, String3,
  String4, String5, String5, String7
]

Snakeyaml実装を使用してテストしましたが、他の実装についてはわかりません。

4
Yee

配列要素の値が小さい場合、私にとっては次のとおりであり、読みやすさの観点からは良いことです:

key: [string1, string2, string3, string4, string5, string6]

注:使用されるsnakeyaml実装