Điểm:3

Biến ansible không có dấu ngoặc kép

lá cờ cn
raw

Để sử dụng một biến được thu thập từ json, tôi cần biến đó ở dạng thô, không có dấu ngoặc kép:

Tôi có

được rồi: [thiết bị] => {
    "sự thật": {
        "int": "7"
    },
}

tôi muốn

được rồi: [thiết bị] => {
    "sự thật": {
        "int": 7
    },
}

Vấn đề là các trích dẫn không phải là một phần của biến nên tôi không thể sử dụng | int hoặc | thay thế để loại bỏ các dấu ngoặc kép.

Là có một cách ?

Điểm:6
lá cờ br

Kết quả của một Jinja biểu thức luôn là một chuỗi. Bạn không thể lấy một số nguyên. Điều bạn thực sự muốn, tôi đoán, là giá trị của thuộc tính int trong từ điển sự thật là một số nguyên. Kiểm tra giá trị hiện tại, ví dụ:

        - gỡ lỗi:
            var: fact.int
        - gỡ lỗi:
            var: fact.int|type_debug

Nếu giá trị của thuộc tính int là một chuỗi bạn sẽ nhận được (rút gọn)

  fact.int: '7'
  fact.int|type_debug: AnsibleUnicode

Bạn có thể chuyển đổi chuỗi thành số nguyên, ví dụ:

        - bộ_thực tế:
            fact: "{{ fact|combine({'int': _int|int}) }}"
          lọ:
            _int: "{{fact.int }}"
        - gỡ lỗi:
            var: fact.int
        - gỡ lỗi:
            var: fact.int|type_debug

bạn sẽ nhận được (rút gọn)

  fact.int: '7'
  fact.int|type_debug: int

Bây giờ, giá trị của thuộc tính int là một số nguyên. Nhưng, kết quả của biểu thức Jinja var: fact.int vẫn là một chuỗi fact.int: '7'.


ghi chú

  • Hãy nhận biết rằng var tùy chọn của gỡ lỗi mô-đun đã chạy trong ngữ cảnh Jinja2 và có gói ẩn {{ }}.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.