PyYAML как вставить длинную многострочную строку - PullRequest
0 голосов
/ 06 марта 2020

Здравствуйте, у меня есть этот файл yaml

  host_image: 
  host_flavor:
  host_key_private: 
  host_key_public: 

, и, учитывая все значения строк, которые я хочу закончить этим yaml

  host_image: 8da0966a-dc3b-4501-b35e-26aa3c210bf7
  host_flavor: 2
  host_key_private: |
    -----BEGIN RSA PRIVATE KEY-----
    MIIEpQIBAAKCAQEAyyYOpHKYDTdJWJxyXd19uzSKPa74388FWtY5WyVC1fkYJ4Zp
    Bj1OwQqXuodJjvTM+KWAkzz/UHFR6OZ7PPEXG8HLYd5DsSPAijdzZJMz7kTEk1il
    JXBXInlGIVFi2qcyz8S/UxwXBn5QHWiHcxMz8PsoErDN1KrBTWP9WPFexy+axGPB
    9dgVXVoe4bGiBuKGBhHVu3WPL8SVVxFuATrPyg78X9LOCIIpvz0w+1tKpBBH5HPI
    kXW9G7ATMp/lFqC4NpkBFWlgKUwBr/x0wkVQ2/Qa0w4tIKynQCS5QygcZuzqGVNE
    Kfio7blZsmwe7imEfsHk/DkogK9cZZXwfdLmSwIDAQABAoIBAGfOxbKwwBQYyUkX
    gLWIZiRQX8fPbmtnbVQSnfJ+Yt3WUMp5u5ctot2wHQJ6+VKss0TnxYD3rXucvH9n
    r1ff1rAfYl9bZXnSTCQU28lsEyBRUaX9qT4tXslF8Vk7LmmPAL78ycudUgLGbwfo
    Dzb1fBhLLxoF8NgYfXiffKmDhawANO2Zy6N+sdcv8eKpQlRrha0OeBVAbwif1p54
    DBiN8cGWqIcqzPnOznQtAlUrxxYmCAp0l/tQc6+GaObABVIWFf0J9JluyP08lTte
    9wbvNMUIF0JqsYVxd9AjQJKjKKocyzRzi+yh3c6+esK+drsxfK/hBj1GWdICNpJs
    sdbEReECgYEA8t7vgQgvhpN96ZvAq76MUE1SIYIkqnymQhwwXJpZCnqPlotnwK8F
    3zMnUC64PjjTbECb9w1aa8HT5vFidCdpc74hlDyBhs8sviaCrfZTpay+Zd9U2sQX
    16U72fJjhWph7Q2k3/xfETnkXzVlgCg49wo2CeOxhtP+E9DcH1QRTbsCgYEA1iFp
    FV5wnTy1tfnFt+J0Y4mFcCVYWh2ercBfyIJFaW363h06RdQh4Ur/k2g2f1n9xKJ0
    XtBiyMscEX2tK3Jpc6SBePnPumCN43iv8tvzDANROV7SKJWhe7ZAuQyJdXTeTSAd
    x/0HmS5Ip+PXCdeHC/0TY239E+5jK2u0WW89+LECgYEAnqius49iZLrjjYG3Szru
    tOLeHY/EXi+R+SwrF8OpGWRZexJU1BZCcr4bF5F9wQAkddp7SNhLUovL31mfZJv+
    kqMJkqo4P5YF9652vihmGpwPwcM0zrk9jh2eTNHA2/5UPKUmKUDX5gv4uY3LYf5k
    wFXGWY2Kgrboi49szXaA21MCgYEAt0skK4GKvl2wYdQrditnW6jlS0j8Zy9BnBO3
    KeixR/03qBe2wP1D/xj2yxSCyeKbgk1ZdavFU4HhReuhZzZpo+7mUUrtkOmDq3qs
    iiPS2a6hQY20Mb9b2oz4vC5KH/vpKnXaaE1kyq++y9ARS8BtPkrk5NDKuNvvkcSB
    PakmkBECgYEAnLoM1I2Pm4ajOFW+BkH99Tf1BmWNDjuLAlONYoRWb8LjrVsyhUPw
    NryYqzH6IWQpiZO/cyoJ4gmdOqwWZ/8gGYKESxms4QfCmMTNVQ9yJKvIyPRlvTsc
    x0SyqE4DRztUJUmACUIU570vaUa0kwKglFS5wAh49Fo3NTxBIdITbSw=
    -----END RSA PRIVATE KEY-----

У меня проблема только с host_key_private, потому что я знаю, что это слишком долго, но я не знаю, как писать в блоке. Мой скрипт такой:

    import yaml
    # edit input file adding node's inputs
    with open(yamlFile) as f:
        doc = yaml.safe_load(f)
        doc['host_flavor'] = host_flavor
        doc['host_image'] = host_image
        doc['host_key_private'] = host_key_private
    with open(yamlFile, 'w') as f:
        yaml.dump(doc, f)

Вместо этого я получаю следующее:

host_flavor: 2
host_image: 8da0966a-dc3b-4501-b35e-26aa3c210bf7
host_key_private: '-----BEGIN RSA PRIVATE KEY-----MIIEpQIBAAKCAQEAyyYOpHKYDTdJWJxyXd19uzSKPa74388FWtY5WyVC1fkYJ4ZpBj1OwQqXuodJjvTM+KWAkzz/UHFR6OZ7PPEXG8HLYd5DsSPAijdzZJMz7kTEk1ilJXBXInlGIVFi2qcyz8S/UxwXBn5QHWiHcxMz8PsoErDN1KrBTWP9WPFexy+axGPB9dgVXVoe4bGiBuKGBhHVu3WPL8SVVxFuATrPyg78X9LOCIIpvz0w+1tKpBBH5HPIkXW9G7ATMp/lFqC4NpkBFWlgKUwBr/x0wkVQ2/Qa0w4tIKynQCS5QygcZuzqGVNEKfio7blZsmwe7imEfsHk/DkogK9cZZXwfdLmSwIDAQABAoIBAGfOxbKwwBQYyUkXgLWIZiRQX8fPbmtnbVQSnfJ+Yt3WUMp5u5ctot2wHQJ6+VKss0TnxYD3rXucvH9nr1ff1rAfYl9bZXnSTCQU28lsEyBRUaX9qT4tXslF8Vk7LmmPAL78ycudUgLGbwfoDzb1fBhLLxoF8NgYfXiffKmDhawANO2Zy6N+sdcv8eKpQlRrha0OeBVAbwif1p54DBiN8cGWqIcqzPnOznQtAlUrxxYmCAp0l/tQc6+GaObABVIWFf0J9JluyP08lTte9wbvNMUIF0JqsYVxd9AjQJKjKKocyzRzi+yh3c6+esK+drsxfK/hBj1GWdICNpJssdbEReECgYEA8t7vgQgvhpN96ZvAq76MUE1SIYIkqnymQhwwXJpZCnqPlotnwK8F3zMnUC64PjjTbECb9w1aa8HT5vFidCdpc74hlDyBhs8sviaCrfZTpay+Zd9U2sQX16U72fJjhWph7Q2k3/xfETnkXzVlgCg49wo2CeOxhtP+E9DcH1QRTbsCgYEA1iFpFV5wnTy1tfnFt+J0Y4mFcCVYWh2ercBfyIJFaW363h06RdQh4Ur/k2g2f1n9xKJ0XtBiyMscEX2tK3Jpc6SBePnPumCN43iv8tvzDANROV7SKJWhe7ZAuQyJdXTeTSAdx/0HmS5Ip+PXCdeHC/0TY239E+5jK2u0WW89+LECgYEAnqius49iZLrjjYG3SzrutOLeHY/EXi+R+SwrF8OpGWRZexJU1BZCcr4bF5F9wQAkddp7SNhLUovL31mfZJv+kqMJkqo4P5YF9652vihmGpwPwcM0zrk9jh2eTNHA2/5UPKUmKUDX5gv4uY3LYf5kwFXGWY2Kgrboi49szXaA21MCgYEAt0skK4GKvl2wYdQrditnW6jlS0j8Zy9BnBO3KeixR/03qBe2wP1D/xj2yxSCyeKbgk1ZdavFU4HhReuhZzZpo+7mUUrtkOmDq3qsiiPS2a6hQY20Mb9b2oz4vC5KH/vpKnXaaE1kyq++y9ARS8BtPkrk5NDKuNvvkcSBPakmkBECgYEAnLoM1I2Pm4ajOFW+BkH99Tf1BmWNDjuLAlONYoRWb8LjrVsyhUPwNryYqzH6IWQpiZO/cyoJ4gmdOqwWZ/8gGYKESxms4QfCmMTNVQ9yJKvIyPRlvTscx0SyqE4DRztUJUmACUIU570vaUa0kwKglFS5wAh49Fo3NTxBIdITbSw=-----END
  RSA PRIVATE KEY-----'

EDIT

переменная host_key_private содержит строку "----- BEGIN RSA PRIVATE KEY ----- MIIEp .... "

...