Python

Преобразование формата 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
Строка TOML в файл YAML

Файл TOML в строку YAML в Python

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

Входной файл TOML
Входной файл 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 часов видеоконтента с инструкциями для начинающих. Узнайте, как создавать приложения для реального мира, и освойте основы.


Ссылка на источник

Похожие статьи

Кнопка «Наверх»