【问题标题】:ansible jinja or python; calculation on a dynamic json structureansible jinja 或 python;动态 json 结构的计算
【发布时间】:2018-07-02 07:57:18
【问题描述】:

我正在开发 ansible 2.5、python 2.7。 我必须对动态 json 变量执行计算。 变量是动态的;它可以包含 1 到 1000 个对象: 示例:

var: [
    {   "name": "object1",
        "value": 1,
        "oper": 2
    },
    {   "name": "objectN",
        "value": 40,
        "oper": 8
    }
 ]

我必须执行的操作非常基本: 结果 = (var.object_1.value * var.object_1.oper) + (var.object_2.value * var.object_2.oper) + (var.object_N.value * var.object_N.oper) ... 如何处理这个操作?是否有一个 jinja 函数可以使用 json 结构,还是我必须创建一个自定义的“ansible 过滤器”才能使用 python 函数? 谢谢大家的建议!

【问题讨论】:

    标签: python json ansible jinja2


    【解决方案1】:

    最简单的解决方案是使用循环(您需要Jinja2 2.10 for assignments 才能工作):

    - set_fact:
        my_sum: "{% set ns = namespace(sum=0) %}{% for e in var %}{% set ns.sum = ns.sum + e.value * e.oper %}{% endfor %}{{ ns.sum }}"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-15
      • 2017-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-27
      • 1970-01-01
      相关资源
      最近更新 更多