我想帮助创建一个新的数据 struct ,它比较了这两本词典,

然后用词典创建一个列表.其 idea 是,在发生变化的情况下,保留旧版本并添加修改后的用户名/密码.

目标:

list: [{"username": "a1", "password": "apass1"}, {"username": "a2", "password": "apass2"}, {"username": "b1", "password": "bpass1"}, {"username": "c1", "password": "cpass1"}, {"c_username": "c1", "c_password" : "cpass1"} , {"c_username": "c2", "c2_password" : "cpass1"}]
---
name: "Username/Password version 1"
set_fact:
  dict1: {"a_username": "a1", "a_password" : "apass1", "b_username": "b1", "b_password" : "bpass1", "c_username": "c1", "c_password" : "cpass1"}

name: "Username/Password version 2"
set_fact:
  dict2: {"a_username": "a2", "a_password" : "apass2", "b_username": "b1", "b_password" : "bpass1", "c_username": "c2", "c2_password" : "cpass1"}

我希望这对管理我的PostgreSQL数据库中的服务中断很有用. 我还从保管库检索用户名/密码数据

推荐答案

给出了词典

    dict1:
      a_username: a1
      a_password: apass1
      b_username: b1
      b_password: bpass1
      c_username: c1
      c_password: cpass1
      
    dict2:
      a_username: a2
      a_password: apass2
      b_username: b1
      b_password: bpass1
      c_username: c2
      c_password: cpass1

问:100

A:模板如下

    list1: |
      {% filter from_yaml %}
      {% for i in dict1.keys()|batch(2) %}
      - {username: {{ dict1[i.0] }}, password: {{ dict1[i.1] }}}
      {% if dict1[i.0] != dict2[i.0] or dict1[i.1] != dict2[i.1] %}
      - {username: {{ dict2[i.0] }}, password: {{ dict2[i.1] }}}
      {% endif %}
      {% endfor %}
      {% endfilter %}

赠送

    list1:
      - {password: apass1, username: a1}
      - {password: apass2, username: a2}
      - {password: bpass1, username: b1}
      - {password: cpass1, username: c1}
      - {password: cpass1, username: c2}

下一个选项是获取唯一的用户名/密码对并创建词典

    dict3: "{{ dict((dict1.values()|list + dict2.values()|list)|
                    batch(2)|unique) }}"

赠送

    dict3:
      a1: apass1
      a2: apass2
      b1: bpass1
      c1: cpass1
      c2: cpass1

将词典转换为列表,您会得到相同的结果

    list1: "{{ dict3|
               dict2items(key_name='username', value_name='password')|
               sort(attribute='username') }}"

Postgresql相关问答推荐

Trunc函数不删除小数

使用PGx在围棋中执行多条SQL语句

为什么更新不设置较晚的结束时间?

将具有自定义类型的表从一种模式复制到另一种模式

在 Postgres 中,部分索引比普通索引需要更多的时间和成本来执行

在 Postgresql 中实现自定义运算符时出错

返回行值和行计数的总和

PostgreSQL bytea 网络流量双倍预期值

如何将两条线几何连接成一条记录?

带有初始数据的 docker postgres 不会在提交中持久化

timezone date_trunc 函数

从局域网访问 PostgreSQL 服务器

Postgresql SERIAL 的工作方式是否不同?

如何使用 node-postgres 将多行正确插入 PG?

将属性添加到 Sequelize FindOne 返回的对象

无法在 postgresql hibernate 中使用名为user的表

psql 致命角色不存在

PG::ConnectionBad FATAL:role "Myname" does not exist

如何在 psql 中设置默认显示模式

使用python将数据从csv复制到postgresql