一旦你加载了一个YAML文件,它不再是“yaml”;它现在是一个Python数据结构,biotools
关键的内容是list
:
>>> import ruamel.yaml as yaml
>>> data = yaml.load(open('data.yml'))
>>> data['extra']['identifiers']['biotools']
['http://bio.tools/abyss']
像任何其他Python列表,你可以append
它:
>>> data['extra']['identifiers']['biotools'].append('http://bio.tools/anothertool')
>>> data['extra']['identifiers']['biotools']
['http://bio.tools/abyss', 'http://bio.tools/anothertool']
如果你打印出数据结构,你得到有效的YAML:
>>> print(yaml.dump(data))
extra:
identifiers:
biotools: [http://bio.tools/abyss, http://bio.tools/anothertool]
当然,如果由于某种原因你不喜欢这样的名单表示你还可以得到在S yntactically相当于:
>>> print(yaml.dump(data, default_flow_style=False))
extra:
identifiers:
biotools:
- http://bio.tools/abyss
- http://bio.tools/anothertool
谢谢,@Anthon。它工作得很好。如果这些例子中的一些直接用于文档来提高图书馆的可用性,那将是非常好的。 – ypriverol
如果此答案解决了您的问题,请通过单击答案旁边的✔(复选标记)来考虑*接受*。这是其他人知道你的问题已经解决的方式,没有阅读评论。它还会在列表中更改问题的外观和此答案。如果有更好的答案出现,您可以随时更改接受的答案。 – Anthon