Рейтинг:1

Добавить словари JSON

флаг cn

Я использую ansible 2.9 и не могу найти способ добавить ниже структуру JSON с данными

"Переменные":[
    {
        "Строки": [
            "азбука",
            "xyz"
        ],
        «Входы»: правда
    }
]

Я хочу добавить «efg» в строки, но не уверен, какой синтаксис будет использоваться при этом. используя Ansible set_fact для добавления этого.

Я знаю, что мы можем сделать это с помощью comb_filter, но, я думаю, это работает только для ansible 2.10. Любое предложение о том, как это сделать.

флаг br
«Переменные» — это список. Вы хотите изменить только первый элемент списка (или только один), или вы хотите также изменить любой другой элемент в списке, если это применимо?
AniK avatar
флаг cn
Я просто хочу добавить новые данные в строки, все остальное должно быть как есть. не хочу изменять какой-либо другой контент в этом.
Michael Hampton avatar
флаг cz
Вы имеете в виду, что хотите изменить только _first_ список Strings и не изменять никаких дополнительных списков Strings, которые добавляются позже?
AniK avatar
флаг cn
получил ответ выше, я хотел добавить только в список строк, а остальное все должно быть неповрежденным.
Рейтинг:0
флаг br

Ты можешь использовать комбинировать фильтр в 2.9. Это было в Ansible с версии 2.3. То, что вы не можете использовать в 2.9, это опция list_merge. В этом случае вы можете перебирать список и объединять списки самостоятельно, например. игра

- хосты: локальный
  вары:
    to_add: ефг
    Переменные:
      - Строки: [abc, xyz]
        Входы: правда
  задачи:
    - set_fact:
        V2: "{{ V2|d([]) + [item|combine({'Strings': _Strings})] }}"
      цикл: "{{Переменные}}"
      вары:
        _Strings: "{{ item.Strings + [to_add] }}"
    - set_fact:
        Переменные: "{{ V2 }}"
    - отладка:
        вар: переменные

делает работу

  Переменные:
  - Входы: правда
    Строки:
    - азбука
    - хыз
    - ефг
AniK avatar
флаг cn
это было то, что я искал, большое спасибо :)

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

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.