Форматирование списка строк для вывода в YML - PullRequest
0 голосов
/ 10 мая 2018

Вот фрагмент данных, с которыми я работаю:

snmp-server view DenyAll iso excluded
snmp-server view iso_view iso included
snmp-server view Cust_View interfaces included
snmp-server view Cust_View ifMIB included

Я пытаюсь перевести его в формат YML, как показано ниже:

snmp-server:
    view:
        Cust_View:
            - "interfaces included"
            - "ifMIB included"
            - "etc etc etc"
        DenyAll: "iso included"
        iso_view: "iso included"

Я пробовалЧтобы выполнить итерацию по набору данных, разбейте каждый фрагмент данных на пробел и используйте первые два элемента в списке в качестве «ключа» в файле YML, а остальные элементы в списке в качестве значений.Однако это не подходит ни для какого другого набора данных, который я мог бы хотеть отформатировать таким же образом.

Я не ищу код, который будет написан для меня.Я ищу идеи о том, как мне поступить и вывести это в нужную мне структуру, я прекрасно пишу в YML и т. Д., Единственная часть, над которой я борюсь, - это форматирование данных

1 Ответ

0 голосов
/ 10 мая 2018

Вам нужно использовать Trie (дерево префиксов) для вашей задачи. Прочитайте каждую строку, разделите слова пробелом, а затем вставьте их в три. Затем начните с корня дерева и попытайтесь напечатать элементы в обходе предварительного заказа и используйте табуляцию (или пробел) для отступов на каждом уровне.

Похоже, что данные должны быть распечатаны в алфавитном порядке. Вы можете добиться этого, вставляя узлы в отсортированном порядке.

...