【发布时间】:2022-01-13 22:54:26
【问题描述】:
这是我的字典列表
json:
datasets:
- createTime: '2020-01-10T18:18:29.010162Z'
displayName: video_dataset
name: projects/000111/locations/us-central1/datasets/123456789
- createTime: '2020-01-10T18:18:29.010162Z'
displayName: manual_dataset
name: projects/000111/locations/us-central1/datasets/00556685
- createTime: '2020-01-10T18:18:29.010162Z'
displayName: wrong_dataset
name: projects/000111/locations/us-central1/datasets/19967845
如果列表有 displayName = video_dataset,我正在尝试从“name”键中获取第 5 个元素。
所以这里的输出是 123456789。
这是我的 ansible 脚本,其中一种方法是使用 json_query:
- name: get dataset id
set_fact :
dataset_ID: "{{ dataset_list.json.datasets | json_query([displayName=='video_dataset'].name.split('/')[5]) }}"
这给了我错误的说法,
Undefine Variable : 'displayName'
我尝试了几种方法,但没有运气。任何建议都会很重要。
提前致谢。
【问题讨论】:
-
{{ json.datasets | selectattr('display_name', '==', 'video_dataset') | map(attribute='name') | map('regex_replace', '^.*/(\\d*)$', '\\1') }}。就地写在我的手机上,未经测试。
标签: json list dictionary ansible