json - {{ ec2.instances | 上发生意外的模板类型错误from_json }} : expected string or buffer?

标签 json ansible

我无法将变量中的 json 字符串传递给 from_json。我从标题中收到错误消息。以下是我的“代码”。

- ec2_instance_facts:
    aws_access_key: "{{ key }}"
    aws_secret_key: "{{ secret }}"
  register: ec2

- name: "Looking up stuff."
  set_fact:
    a_count: "{{ ec2.instances | from_json }}"

- debug:
    msg: "{{ a_count }}"

知道如何实现这一目标吗?我想随后将 json 对象传递给 json_query

最佳答案

json_query 使用 Python 对象进行操作。 Ansible 将数据存储在 Python 对象中。

您在屏幕上看到 JSON 的原因是因为 Ansible 输出插件将对象转储为 JSON。

您可以执行{{ ec2.instances | json_query('...') }} 没有任何转换。

如果您有一些带有 JSON 数据的字符串,需要将其转换为 Python 对象,

from_json 是必需的。

关于json - {{ ec2.instances | 上发生意外的模板类型错误from_json }} : expected string or buffer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48318708/

相关文章:

json - 在 Logstash 中,如何限制在 Elasticsearch 中转换为索引字段的日志中 JSON 属性的深度?

c# - 如何使用 JSON.NET 反序列化部分 JSON 对象

Ansible - 如何将文件内容连接到变量中

ansible - 如何避免 Ansible 上的 ask-vault-pass 参数

windows - Ansible:检测证书是否已安装在证书存储中的最佳方法

deployment - 在 Ansible 主机上运行命令

javascript - Gson.fromJson 卡在线上

java - Java中的Json解析仅通过提供一次键从数组中获取值?

jquery - 使用 $.post 将对象集合传递到 MVC Controller

mysql - 使用ansible安装和配置mysql