Potrzebuję załadować plik Yaml do Hash,
Co mam zrobić?Jak przeanalizować plik yaml w hash i/lub tablice skrótów ruby?
Odpowiedz
pomocą modułu YAML:
http://ruby-doc.org/stdlib-1.9.3/libdoc/yaml/rdoc/YAML.html
node = YAML::parse(<<EOY)
one: 1
two: 2
EOY
puts node.type_id
# prints: 'map'
p node.value['one']
# prints key and value nodes:
# [ #<YAML::YamlNode:0x8220278 @type_id="str", @value="one", @kind="scalar">,
# #<YAML::YamlNode:0x821fcd8 @type_id="int", @value="1", @kind="scalar"> ]'
# Mappings can also be accessed for just the value by accessing as a Hash directly
p node['one']
# prints: #<YAML::YamlNode:0x821fcd8 @type_id="int", @value="1", @kind="scalar">
http://yaml4r.sourceforge.net/doc/page/parsing_yaml_documents.htm
Powoduje to powrót Syck :: Map (lub podobnych obiektów), a nie skrótów. Jakikolwiek sposób na przywrócenie (lub konwersję) zwykłego Hash ruby? – elsurudo
chciałbym użyć czegoś takiego:
hash = YAML.load(File.read("file_path"))
Również w Rubim 2.2 symbole są oznaczone GC. – Kris
[Moja odpowiedź] (https://stackoverflow.com/a/45068104/3042952) jest oparta na tym jednym, z wyjątkiem tego, że jest prostszy i odrobinę bardziej czytelny przy użyciu YAML.load_file. –
może napotkasz problem wspomnianego na this related question, a mianowicie, że plik lub strumień YAML określa obiekt, do którego będzie próbował użyć moduł ładujący YAML przekonwertuj dane na. Problem polega na tym, że będziesz potrzebował odpowiedniego Gem, który wie o danym obiekcie.
Moje rozwiązanie było dość trywialne i stanowi odpowiedź na to pytanie. Zrób to:
yamltext = File.read("somefile","r")
yamltext.sub!(/^--- \!.*$/,'---')
hash = YAML.load(yamltext)
W zasadzie usuniesz tekst klasyfikatora obiektów z tekstu yaml. Następnie analizujesz/ładujesz go.
Prostsza wersja odpowiedzi Venables':
hash = YAML.load_file("file_path")
- 1. Jak przeanalizować plik YAML?
- 2. Hash w pliku YAML?
- 3. Jak iterować poprzez strukturę hash yaml w ruby?
- 4. Hash-consing w F # i słabe tablice hash w .net
- 5. Niespójne ukryte hash w Ruby?
- 6. Szyny łączące dwie tablice skrótów?
- 7. Aktualizowanie pliku YAML w Ruby
- 8. Nowy sposób tworzenia skrótów w Ruby 2.2.0
- 9. Metoda "zliczania" ruby dla skrótów
- 10. Jak zaktualizować plik yaml przy użyciu pythona
- 11. Hash składni w Ruby
- 12. Jak przeanalizować plik M3U8 w Objective C?
- 13. Jak znaleźć i zwrócić wartość hash wewnątrz tablicy skrótów, biorąc pod uwagę wiele innych wartości hash
- 14. Jak sortować pliki YAML?
- 15. Jak analizować plik YAML w groovy?
- 16. Ruby - coraz wartość hash
- 17. Jak zrobić instancję obiektu hash w Ruby?
- 18. Jak iterować nad hash w Ruby?
- 19. Ruby: Jak konwertować hash w tablicy
- 20. Ruby elementem dostęp hash
- 21. Odpowiednik ruby "Data :: Dumper" firmy Perl do drukowania głęboko zagnieżdżonych skrótów/tablic
- 22. Ruby BCrypt porównanie hash
- 23. Jak mogę przejść drzewo YAML za pomocą YAML :: Tiny Perla?
- 24. Generowanie unikatowych skrótów w Ruby/Rails
- 25. Jak pogrupować tę tablicę skrótów?
- 26. Twórz dwuwymiarowe tablice i subar tablice dostępu w Ruby
- 27. od json do ruby hash?
- 28. Jak przekonwertować obiekt hash ruby na JSON?
- 29. Ruby 1.8.7 nawrócony hash ciąg
- 30. Sprytnie konwertująca tablica skrótów do CSV w Ruby
Należy zaktualizować wybraną odpowiedź. Ten, który wybrałeś, nie odpowiada na twoje aktualne pytanie (niezależnie od tego, czy jest bardziej informacyjny czy nie). – Volte