て複製エントリ私は次のような構造でYAMLを持っていますデータ(oldsコマンド)と新しいパラメータを反映するためのものです。編集既存のYAMLとPyYAMLと
jobStream = open("example.yaml", 'r')
jobMap = yaml.safe_load(jobStream)
し、それへのアクセス:私はPyYAMLとを通してそれをロードしています
jobMap[0]['sequence']['commands']
は私が必要とするデータを戻します。しかし、私は単にのようなマージを通してそれを複製した場合:私はyaml.dump(jobMap)
を行うしようとした場合
commandsA = jobMap[0]['sequence']['commands']
commandsB = jobMap[0]['sequence']['commands']
jobMap[0]['sequence']['commands'] = commandsA + commandsB
を、それはコマンドが重複していませんが、IDが表示:リストcommandsA
から
- *id001
- *id002
- *id003
- *id004
このYAMLは無効で、でもちょうど '(...)'取り外す際は、keepgoing 'として:false'を、同じインデントレベルを持つことはできませんその上の配列要素として。あなたの投稿の "YAML"を削除し、あなたが持っているYAMLをコピーし、YAMLを構成するすべての行を選択して '{}'を押します。もしYAMLにタブ文字がなければ、今ある。 – Anthon
PyYAMLを使用している特別な理由は何ですか?あなたのソースは、古いYAML 1.1標準に従っていますか? – Anthon
@Anthon、ちょうどYAML形式を修正しました。ありがとうございます! そして私はPyYamlを使用しています。なぜなら、それは私がそれを行う方法であったからです。私は推奨すれば他のアプローチにもオープンしています。 –