A analisar um ficheiro YAML em Python e a aceder aos dados?

sou novo na YAML e tenho andado à procura de formas de processar um ficheiro YAML e usar/aceder aos dados da YAML analisada.

deparei-me com explicações sobre como processar o ficheiro YAML, por exemplo, o tutorial PyYAML , "Como posso processar um ficheiro YAML em Python", "converter o dict Python para objecto?", mas o que eu não encontrei é um exemplo simples de como acessar os dados do arquivo YAML analisado.

Suponha que tenho um ficheiro YAML como este. como:

 treeroot:
     branch1: branch1 text
     branch2: branch2 text

Como é que acedo ao texto "texto branch1"?

"análise YAML e Python?"Fornece uma solução, mas tive problemas em aceder aos dados de um ficheiro YAML mais complexo. E, eu estou me perguntando se existe alguma maneira padrão de acessar os dados de um arquivo YAML analisado, possivelmente algo semelhante a iteração de árvore " ou "elementpath " notação ou algo que seria usado ao analisar um arquivo XML?

Author: Community, 2011-11-15

1 answers

Desde que a função PyYAML yaml.load() analisa os documentos YAML para as estruturas de dados nativas em Python, você pode apenas aceder aos itens por chave ou índice. Usando o exemplo da pergunta que você ligou:

import yaml
with open('tree.yaml', 'r') as f:
    doc = yaml.load(f)

Para aceder {[3] } usaria:

txt = doc["treeroot"]["branch1"]
print txt
"branch1 text"

Porque, no seu documento YAML, o valor da chave branch1 está sob a chave treeroot.

 128
Author: Aphex, 2017-09-18 22:04:33