ฉันมีคำสั่งดังต่อไปนี้
{
"key1" : "value1",
"key2" : "value2",
"key3" : "value3",
"key4" : {
"key5" : "value5"
}
}
หาก dict มี key1==value1 ฉันจะเพิ่ม dict ลงในรายการ
สมมติว่า key1==value1 ไม่มีอยู่ในคู่ค่าคีย์คู่แรก ในขณะที่คีย์นั้นอยู่ภายใน dict ที่ซ้อนกันดังนี้:
{
"key2" : "value2",
"key3" : "value3",
"key4" : {
"key5" : "value5",
"key1" : "value1",
"key6" : {
"key7" : "value7",
"key1" : "value1"
}
},
"key8" : {
"key9" : "value9",
"key10" : {
"key11" : "value11",
"key12" : "value12",
"key1" : "value1"
}
}
}
ใน dict ข้างต้น ฉันต้องตรวจสอบก่อนว่ามี key1=value1 หรือไม่ ถ้าไม่ ฉันต้องสำรวจ dict ที่ซ้อนกัน และหากพบใน dict ที่ซ้อนกัน ฉันจะต้องเพิ่ม dict นั้นต่อท้ายรายการ หาก dict ที่ซ้อนกันก็เป็น dict ที่ซ้อนกันเช่นกัน แต่พบ key1=value1 ในคู่ของค่าคีย์คู่แรก ก็ไม่จำเป็นต้องตรวจสอบ dict ภายใน (เช่น key4 มี key1=value1 ในคู่ของค่าคีย์คู่แรก ดังนั้น จึงไม่จำเป็นต้อง ตรวจสอบอันด้านในแม้ว่า key6 จะมี key1=value1)
สุดท้ายนี้ผมก็จะมีรายการตามนี้ครับ
[
{
"key5" : "value5",
"key1" : "value1",
"key6" : {
"key7" : "value7",
"key1" : "value1"
}
},
{
"key11" : "value11",
"key12" : "value12",
"key1" : "value1"
}
]
จะบรรลุเป้าหมายนี้ได้อย่างไร? หมายเหตุ: ความลึกของ dict อาจแตกต่างกันไป