Преобразование словаря Python в yaml ⇐ Python
-
Гость
Преобразование словаря Python в yaml
У меня есть словарь, я конвертирую словарь в yaml, используя модуль yaml в Python. Но Yaml не конвертируется должным образом.
output_data = { 'Ресурсы': [{ 'тип': 'compute.v1.instance', 'name': 'VM-созданный-менеджером-развертывания', 'характеристики': { 'диски': [{ 'deviceName': '$disks_deviceName$', 'boot': '$disks_boot$', 'инициализироватьПарамс': { 'sourceImage': '$disks_initializeParams_sourceImage$' }, 'autoDelete': '$disks_autoDelete$', 'тип': '$disks_type$' }], 'machineType': '$machineType$', 'зона': '$зона$', 'сетевые интерфейсы': [{ 'сеть': '$networkInterfaces_network$' }] } }] } Я пробовал:
импортировать yaml f = open('meta.yaml', 'w+') yaml.dump(output_data, f,allow_unicode=True) Я получаю файл meta.yaml следующим образом:
ресурсы: - имя: виртуальная машина, созданная менеджером-развертывания характеристики: диски: - автоудаление: $disks_autoDelete$ загрузка: $disks_boot$ Имя устройства: $disks_deviceName$ InitializeParams: {sourceImage: $disks_initializeParams_sourceImage$} тип: $disks_type$ тип машины: $тип машины$ СетевыеИнтерфейсы: - {сеть: $networkInterfaces_network$} зона: $зона$ тип: Compute.v1.instance Здесь {sourceImage: $disks_initializeParams_sourceImage$} и {network: $networkInterfaces_network$} написаны как словарь. Это означает внутренний содержимое словаря не конвертируется в yaml.
Я тоже пробовал
output_data = eval(json.dumps(output_data)) ff = open('meta.yaml', 'w+') yaml.dump(output_data, ff,allow_unicode=True) Но получаем то же содержимое файла yaml.
Как преобразовать вложенный словарь в yaml в Python?
У меня есть словарь, я конвертирую словарь в yaml, используя модуль yaml в Python. Но Yaml не конвертируется должным образом.
output_data = { 'Ресурсы': [{ 'тип': 'compute.v1.instance', 'name': 'VM-созданный-менеджером-развертывания', 'характеристики': { 'диски': [{ 'deviceName': '$disks_deviceName$', 'boot': '$disks_boot$', 'инициализироватьПарамс': { 'sourceImage': '$disks_initializeParams_sourceImage$' }, 'autoDelete': '$disks_autoDelete$', 'тип': '$disks_type$' }], 'machineType': '$machineType$', 'зона': '$зона$', 'сетевые интерфейсы': [{ 'сеть': '$networkInterfaces_network$' }] } }] } Я пробовал:
импортировать yaml f = open('meta.yaml', 'w+') yaml.dump(output_data, f,allow_unicode=True) Я получаю файл meta.yaml следующим образом:
ресурсы: - имя: виртуальная машина, созданная менеджером-развертывания характеристики: диски: - автоудаление: $disks_autoDelete$ загрузка: $disks_boot$ Имя устройства: $disks_deviceName$ InitializeParams: {sourceImage: $disks_initializeParams_sourceImage$} тип: $disks_type$ тип машины: $тип машины$ СетевыеИнтерфейсы: - {сеть: $networkInterfaces_network$} зона: $зона$ тип: Compute.v1.instance Здесь {sourceImage: $disks_initializeParams_sourceImage$} и {network: $networkInterfaces_network$} написаны как словарь. Это означает внутренний содержимое словаря не конвертируется в yaml.
Я тоже пробовал
output_data = eval(json.dumps(output_data)) ff = open('meta.yaml', 'w+') yaml.dump(output_data, ff,allow_unicode=True) Но получаем то же содержимое файла yaml.
Как преобразовать вложенный словарь в yaml в Python?