Ansible-和#x27;unicode对象';没有属性';文件输入';

Ansible-和#x27;unicode对象';没有属性';文件输入';,unicode,nested,ansible,Unicode,Nested,Ansible,我正在使用Ansible 2.2.1.0,我正在处理一个由其他人制作的有错误的旧项目 我的代码中有以下变量: software_output: - { file_input: 'Download_me.zip', file_output: 'download.zip' } software_version:"0.5,0.6" 我在FTP上下载了这个shell模块指令: - name: "MySoftware | get package on FTP" shell: >

我正在使用Ansible 2.2.1.0,我正在处理一个由其他人制作的有错误的旧项目

我的代码中有以下变量:

software_output:
   - { file_input: 'Download_me.zip', file_output: 'download.zip' }

software_version:"0.5,0.6"
我在FTP上下载了这个shell模块指令:

- name: "MySoftware | get package on FTP"
  shell: >
    curl --ftp-ssl -k {{ ' --ssl-allow-beast ' if os == 'aix' else "" }} -# -f -u {{ ftp_user }}:{{ ftp_password }} -f "{{ ftp_url | replace('@@software_version@@',item[1]) }}{{ item[0].file_input }}"
    -o {{ require_inst_dir }}/{{ item[0].file_output }} 2>/dev/null
  with_nested:
    - software_output
    - "{{ software_version.split(',') }}"
  when: software_version is defined
但它根本不起作用,我有以下错误:

'unicode object' has no attribute 'file_input'
看起来with_nested没有被使用,因为它必须被使用,我错过了什么吗?

在:

with_nested:
  - software_output
software\u output
是一个字符串
software\u output

要参考变量值,请更改为:

with_nested:
  - "{{ software_output }}"


很久以前,第一个语法是有效的,但那是很久以前的事了。

哦,你说得对,Techraf!我怎么会错过呢?可能是因为我们的大部分项目总是基于非常旧的Ansible版本。非常感谢你!