Какой тип вывода вы используете для форматирования файла Yaml с комментариями и словарями, чтобы получить несколько разных форматов

#python #dictionary #format #yaml #dump

#python #словарь #формат #yaml #дамп

Вопрос:

У меня возникли проблемы с поиском информации о том, как я могу отформатировать то, что мне нужно, чтобы сохранить данные файла с таким типом и форматированием. Используя комментарии внутри него, а также словарь.

Я не использую PyYAML, просто стандартный импорт yaml.

 #Frequency of updates in seconds ********LIVE-UPDATEABLE********
interval: 30

#Trading Dilution coins only
dilution_only: yes
#What coins do you want to trade with? ALL, Dilution, or Whitelist is EXAMPLE: ETH,XTZ,XLM
#coins_trading: ETH,ICX,LTC,MCO,ALGO,THETA,ETC,ENJ,XLM,PPT,XTZ,BAND
coins_trading: All
  

Это то, что я пытаюсь вывести в Yaml. Я прочитал этот yaml таким образом, и я вношу некоторые изменения в некоторые значения, а затем планирую выгрузить весь файл обратно в yaml.

Если только кто-то не знает способ изменить только значения на ключи в yaml. Это было бы идеально. Если бы я мог просто изменить интервал: 20 или один из других. Я не нашел метода или способа сделать это.

Ответ №1:

Изучив, как это форматировать, я обнаружил, что Yaml не работает со строками с комментариями и не сохраняет никакой структуры, поскольку функционирует как словарь. Таким образом, строки не упорядочены. Это становится чем-то совершенно другим.

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

 import yaml
with open('file1', 'rU') as f:
    data = yaml.load(f)
data['devices'] = updated_data
with open('file1', 'w') as f:
    yaml.dump(data, f)
  

И это позволит вам изменить значение и записать обратно в yaml. Файл не будет возвращен в любом определенном порядке, и если какие-либо комментарии были там изначально, их больше не будет.