我如何使用 ansible 的 with_items 解析 google 工作表 api 中的每一行数据?

how it I parse each row of data from the google sheets api with ansible's with_items?

我正在使用 Google Sheets V4 Values 集合,但我无法弄清楚如何将每一行解析为 {{ item }}

我的 Ansible ymal 看起来像。

tasks:
- name: debug url
  debug:
    msg: "{{ g_url }}"
- name: GET data from google spead sheet api
  uri:
    url: "{{ g_url }}"
    return_content: yes
    dest: /tmp/o_gd_form.json
  register: google_data
- name: whats the dump?
  debug:
    var: "{{ item.0 |to_json }}"
  with_items: "{{ google_data.json.values() }}" # this is the line that needs to be fixed

响应 json 看起来像:

{
  "range": "Sheet1!A1:D5",
  "majorDimension": "ROWS",
  "values": [
    ["Item", "Cost", "Stocked", "Ship Date"],
    ["Wheel", ".50", "4", "3/1/2016"],
    ["Door", "", "2", "3/15/2016"],
    ["Engine", "0", "1", "30/20/2016"],
    ["Totals", "5.5", "7", "3/20/2016"]
  ],
}

我似乎无法弄清楚如何将 with_items 写入 return 和 json 的 {{ item }},例如 ["Engine", "0", "1", "30/20/2016"]

任何帮助或我是否需要将此任务拆分给某些中间件解析器?

Google 张 api 文档位于:

https://developers.google.com/sheets/samples/reading

要得到你想要的,使用:

    - debug: msg="Name={{ item.0 }} Cost={{ item.1 }}"
      with_list: "{{ google_data.json['values'] }}"

你的代码有两个问题:

  1. values是一个特殊的关键字,所以你不能访问json.values,而应该使用json['values']

  2. with_items 将列表列表展平,因此您最终会得到一长串字符串。您应该使用 with_list 迭代外部列表(行)并获取内部列表(列值)作为项目。