Score:1

ต่อท้ายพจนานุกรม JSON

ธง cn

ฉันใช้ ansible 2.9 และไม่สามารถมองหาวิธีการต่อท้ายโครงสร้าง JSON ด้วยข้อมูลได้

"ตัวแปร":[
    {
        "สตริง": [
            "เอบีซี",
            "xyz"
        ]
        "อินพุต": จริง
    }
]

ฉันต้องการเพิ่ม 'efg' ในสตริง แต่ไม่แน่ใจว่าจะใช้ไวยากรณ์ใดในสิ่งนี้ ใช้ Ansible set_fact เพื่อต่อท้ายสิ่งนี้

ฉันรู้ว่าเราสามารถทำได้โดยใช้ combination_filter แต่นั่นใช้ได้กับ ansible 2.10 เท่านั้น ฉันเดาว่า คำแนะนำใด ๆ เกี่ยวกับวิธีการทำเช่นนี้

br flag
``ตัวแปร`` เป็นรายการ คุณต้องการแก้ไขเฉพาะรายการแรกของรายการ (ATM รายการเดียว) หรือคุณต้องการแก้ไขรายการอื่นในรายการด้วย ถ้ามี
AniK avatar
cn flag
ฉันแค่ต้องการผนวกข้อมูลใหม่เข้ากับ Strings ส่วนที่เหลือทั้งหมดควรเป็นไปตามที่เป็นอยู่ ไม่ต้องการเปลี่ยนแปลงเนื้อหาอื่นใดในนี้
Michael Hampton avatar
cz flag
คุณหมายความว่าคุณต้องการเปลี่ยนเฉพาะรายการ _first_ `Strings` และไม่เปลี่ยนรายการ `Strings` เพิ่มเติมที่เพิ่มในภายหลังใช่หรือไม่
AniK avatar
cn flag
ได้รับคำตอบข้างต้น ฉันตั้งใจจะเพิ่มเฉพาะในรายการสตริง และส่วนที่เหลือทุกอย่างควรจะไม่บุบสลาย
Score:0
ธง br

คุณสามารถใช้ได้ รวมกัน กรองใน 2.9 มันอยู่ใน Ansible ตั้งแต่ 2.3 สิ่งที่คุณไม่สามารถใช้ใน 2.9 คือตัวเลือก list_merge. ในกรณีนี้ คุณสามารถวนซ้ำรายการและรวมรายการด้วยตัวคุณเอง เช่น การเล่น

- โฮสต์: localhost
  วาร์:
    to_add: efg
    ตัวแปร:
      - สตริง: [abc, xyz]
        อินพุต: จริง
  งาน:
    - set_fact:
        V2: "{{ V2|d([]) + [item|combine({'Strings': _Strings})] }}"
      วนซ้ำ: "{{ ตัวแปร }}"
      วาร์:
        _Strings: "{{ item.Strings + [to_add] }}"
    - set_fact:
        ตัวแปร: "{{ V2 }}"
    - แก้ปัญหา:
        var: ตัวแปร

ไม่ทำงาน

  ตัวแปร:
  - อินพุต: จริง
    สตริง:
    - เอบีซี
    - xyz
    - ผลกระทบ
AniK avatar
cn flag
นี่คือสิ่งที่ฉันกำลังมองหา ขอบคุณมาก :)

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา