Jestem nowy w Pythonie. Mam plik yaml (config.yaml), który zawiera dane takie jak poniżej.

Config:
    - name: identity
      value: 101
    - name: size
      value: 201
    - name: logloc
      value: /tmp/log
    - name: host
      value: xyz.dev.cloud

Szukam skryptu Pythona, aby przeczytać powyższy plik YAML i utwórz plik SQL z instrukcjami aktualizacji dla każdej nazwy i wartości, jak poniżej.

UPDATE SAMPLE SET PVALUE=<value> WHERE PNAME=<name>

Z góry dziękuję.

-1
Sammy 28 październik 2020, 04:01

1 odpowiedź

Najlepsza odpowiedź

To będzie, wierzę, rób to, co chcesz:

import yaml

with open('/tmp/config.yaml') as f:
    data = yaml.load(f, Loader=yaml.SafeLoader)

template = "UPDATE SAMPLE SET PVALUE={} WHERE PNAME={}"
statements = [template.format(nv['value'], nv['name']) for nv in data['Config']]

with open("/tmp/update_samples.sql", 'w') as f:
    for statement in statements:
        f.write(statement + '\n')

Zawartość /tmp/update_samples.sql:

UPDATE SAMPLE SET PVALUE=101 WHERE PNAME=identity
UPDATE SAMPLE SET PVALUE=201 WHERE PNAME=size
UPDATE SAMPLE SET PVALUE=/tmp/log WHERE PNAME=logloc
UPDATE SAMPLE SET PVALUE=xyz.dev.cloud WHERE PNAME=host
1
CryptoFool 28 październik 2020, 02:09