GOOGLE ADS

понедельник, 25 апреля 2022 г.

Введите значения конфигурации YAML в аргументы ключевого слова для Python.

Я хотел бы иметь файл конфигурации YAML для определенных параметров анализа для моего скрипта Python. Файл YAML выглядит примерно так:

settings:
param1: 1
param2: two
...

В моем скрипте Python я хочу передать эти значения в качестве аргументов ключевого слова функции. Загрузка файла YAML дает мне словарь. Функция имеет только аргументы ключевого слова, и я заранее не знаю, какие аргументы ключевого слова будут иметь файл конфигурации. Функция выглядит примерно так:

def process(param1=None, param2=None, param3=None):
...

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

Как я могу назначить значения YAML (и/или dict) для их назначений аргументов ключевого слова?


Решение проблемы

Вы можете получить словарь yaml.load()и использовать **синтаксис для передачи ключа/значения в функцию. Таким образом, вам не нужно заранее знать ключи. Например:

import yaml
with open('path/to/config.yml', 'rb') as f:
conf = yaml.safe_load(f.read()) # load the config file
def process(**params): # pass in variable numbers of args
for key, value in params.items():
print('%s: %s' % (key, value))
process(**conf) # pass in your keyword args

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

Комментариев нет:

Отправить комментарий

Laravel Datatable addColumn returns ID of one record only

Я пытаюсь использовать Yajra Datatable для интеграции DataTable на свой веб-сайт. Я смог отобразить таблицу, но столкнулся с проблемой. В по...