2015-09-08 4 views
1

У меня есть YAML файл вроде этого:Got NoMethodError при разборе YAML

--- 
name: dummy 
version: 0.2.0 
title: dummy 
summary: dummy 

Теперь я пытался получить номер версии:

config = YAML.load_file('Index.yml') 
oldversion = config[0]['version'] 

Почему это получить следующее сообщение об ошибке:

NoMethodError: undefined method `[]' for nil:NilClass

ответ

1

Постарайтесь с этим:

config = YAML.load_file('Index.yml') 
oldversion = config['version'] 
+0

, который работает, спасибо –

1

С config[0] вы индексировать последовательность/массив, а на верхнем уровне файла YAML у вас есть отображение, а не последовательность, поэтому оставьте, что из: oldversion = config['version'] или изменить файл YAML в:

--- 
- name: dummy 
    version: 0.2.0 
    title: dummy 
    summary: dummy 

Если вы в конечном итоге хотите получить список таких объектов (с name, version и т. Д.) В вашей конфигурации.

Смежные вопросы