Преобразование формата TOML в формат YAML в Python

Форматы файлов TOML и YAML используются для хранения данных конфигурации программных приложений. В этой статье обсуждается, как преобразовать данные TOML в формат YAML в Python.
Что такое формат файла TOML?
TOML — это формат файла конфигурации, разработанный для удобства чтения и записи как людьми, так и машинами. Формат TOML использует синтаксис, аналогичный формату файла INI. В файле TOML мы сохраняем данные в виде пар ключ-значение, используя оператор присваивания. Ключи находятся слева от знака равенства (=), а значения — справа. Значения могут быть различных типов, таких как строки, числа, логические значения и массивы.
Мы можем организовать пары ключ-значение в таблицы. Каждая таблица определяется с помощью квадратных скобок []
. Мы можем хранить столько пар ключ-значение в таблице. Чтобы понять это, рассмотрим следующий пример.

[employee]
name = "John Doe"
age = 35
[job]
title = "Software Engineer"
department = "IT"
years_of_experience = 10
[address]
street = "123 Main St."
city = "San Francisco"
state = "CA"
zip = 94102
Вышеприведенный пример содержит данные сотрудника в формате TOML. Данные структурированы в три таблицы, т.е. [employee]
, [job]
и [address]
. Здесь каждая таблица содержит разные пары ключ-значение.
-
[employee]
раздел содержитname
иage
сотрудника. [job]
Раздел содержит информацию о работе сотрудника, включая его должность, отдел и многолетний опыт.-
[address]
Раздел содержит информацию об адресе сотрудника, включая адрес, город, штат и почтовый индекс.
Что такое формат файла YAML?
Формат YAML — это формат сериализации данных, обычно используемый для файлов конфигурации и обмена данными. Он также использует пары ключ-значение для представления данных. Здесь пары ключ-значение записываются как <key>: <value>
. Двоеточие (:) разделяет ключ и значение, а пробел следует за двоеточием.
В отличие от формата TOML, YAML использует отступы и пробелы для представления структуры данных. Уровни отступов в файле конфигурации определяют иерархию и вложенность элементов данных. Например, мы можем представить данные, показанные в примере TOML, в формате YAML, как показано ниже.
address:
city: San Francisco
state: CA
street: 123 Main St.
zip: 94102
employee:
age: 35
name: John Doe
job:
department: IT
title: Software Engineer
years_of_experience: 10
Форматы файлов TOML и YAML являются популярными форматами для хранения данных конфигурации. Однако иногда нам может понадобиться преобразовать файлы из одного формата в другой. В следующих разделах мы обсудим, как преобразовать формат файла TOML в YAML в Python.
Преобразование строки TOML в строку YAML в Python
Мы будем использовать модуль toml и yaml для преобразования строки TOML в строку YAML в Python. Сначала мы преобразуем строку TOML в словарь Python. Для этого мы будем использовать loads()
метод, определенный в модуле toml. loads()
Метод принимает строку TOML в качестве входного аргумента и возвращает словарь Python.
Далее мы преобразуем словарь Python в строку yaml. Для этого мы будем использовать dump()
метод, определенный в модуле yaml. dump()
Метод принимает словарь Python в качестве входного аргумента и возвращает выходную строку YAML. Вы можете наблюдать это на следующем примере.
import toml
import yaml
toml_string="""[employee]
name = "John Doe"
age = 35
[job]
title = "Software Engineer"
department = "IT"
years_of_experience = 10
[address]
street = "123 Main St."
city = "San Francisco"
state = "CA"
zip = 94102
"""
python_dict=toml.loads(toml_string)
yaml_string=yaml.dump(python_dict)
print("The TOML string is:")
print(toml_string)
print("The YAML string is:")
print(yaml_string)
Выход:
The TOML string is:
[employee]
name = "John Doe"
age = 35
[job]
title = "Software Engineer"
department = "IT"
years_of_experience = 10
[address]
street = "123 Main St."
city = "San Francisco"
state = "CA"
zip = 94102
The YAML string is:
address:
city: San Francisco
state: CA
street: 123 Main St.
zip: 94102
employee:
age: 35
name: John Doe
job:
department: IT
title: Software Engineer
years_of_experience: 10
Преобразование строки TOML в файл YAML в Python
Вместо создания строки мы также можем преобразовать строку TOML в файл YAML в Python. Для этого мы будем использовать следующие шаги.
- Сначала мы откроем пустой файл YAML в режиме записи, используя
open()
функция.open()
функция принимает имя файла в качестве первого аргумента и литерал Python“w”
в качестве второго входного аргумента. После выполнения возвращает указатель на файл. - Далее мы преобразуем строку TOML в словарь Python, используя
loads()
метод, определенный в модуле toml. - После этого мы будем использовать
dump()
метод, определенный в модуле yaml, для сохранения словаря в файл в формате YAML. Для этого мы передадим словарь в качестве первого входного аргумента и указатель файла на файл YAML в качестве второго аргумента. После выполнения,dump()
Метод запишет данные в формате YAML в файл. - Наконец, мы закроем файл с помощью
close()
метод.
После выполнения вышеуказанных шагов строка TOML будет сохранена в формате YAML в файл. Вы можете наблюдать это на следующем примере.
import toml
import yaml
toml_string="""[employee]
name = "John Doe"
age = 35
[job]
title = "Software Engineer"
department = "IT"
years_of_experience = 10
[address]
street = "123 Main St."
city = "San Francisco"
state = "CA"
zip = 94102
"""
yaml_file=open("employee.yaml","w")
python_dict=toml.loads(toml_string)
yaml.dump(python_dict,yaml_file)
yaml_file.close()
Выходной файл выглядит следующим образом.

Файл TOML в строку YAML в Python
Вместо строк мы также можем конвертировать файлы TOML в формат YAML в Python. Для этого мы будем использовать следующий файл TOML.

Чтобы преобразовать файл TOML в строку YAML в Python, мы будем использовать следующие шаги.
- Сначала мы откроем файл TOML в режиме чтения, используя
open()
функция. - Далее мы прочитаем файл TOML в словарь Python. Для этого мы будем использовать
load()
метод, определенный в модуле toml.load()
Метод принимает указатель на файл TOML в качестве входного аргумента и возвращает словарь Python, содержащий данные из файла. - Как только мы получим словарь, мы преобразуем его в строку YAML, используя
dump()
метод, определенный в модуле yaml. - Наконец, мы закроем файл TOML, используя
close()
метод.
После выполнения вышеуказанных шагов мы можем легко преобразовать файл TOML в строку YAML. Вы можете наблюдать это на следующем примере.
import toml
import yaml
toml_file=open("employee.toml","r")
python_dict=toml.load(toml_file)
yaml_string=yaml.dump(python_dict)
toml_file.close()
print("The YAML string is:")
print(yaml_string)
Выход:
The YAML string is:
address:
city: San Francisco
state: CA
street: 123 Main St.
zip: 94102
employee:
age: 35
name: John Doe
job:
department: IT
title: Software Engineer
years_of_experience: 10
Преобразование файла TOML в файл YAML в Python
Чтобы преобразовать файл TOML в файл YAML в Python, мы сначала откроем файл TOML в режиме чтения и пустой файл YAML в режиме записи, используя open()
функция. Затем мы прочитаем файл TOML в словарь Python, используя load()
метод, определенный в модуле toml. После этого мы запишем данные в файл YAML, используя dump()
метод, определенный в модуле yaml. Наконец, мы закроем оба файла с помощью close()
метод, как показано ниже.
import toml
import yaml
toml_file=open("employee.toml","r")
yaml_file=open("employee.yaml","w")
python_dict=toml.load(toml_file)
yaml.dump(python_dict,yaml_file)
yaml_file.close()
toml_file.close()
Заключение
В этой статье мы обсудили, как преобразовать файл или строку TOML в формат YAML в Python. Чтобы узнать больше о программировании на Python, вы можете прочитать эту статью о списке и множестве в Python. Вам также может понравиться эта статья о if vs elif vs else в python.
Надеюсь, вам понравилось читать эту статью. Следите за информативными статьями.
Счастливого обучения!
Связанный
Рекомендуемое обучение Python
Курс: Python 3 для начинающих
Более 15 часов видеоконтента с инструкциями для начинающих. Узнайте, как создавать приложения для реального мира, и освойте основы.
Ссылка на источник