Saya punya dikt sebagai berikut
{
"key1" : "value1",
"key2" : "value2",
"key3" : "value3",
"key4" : {
"key5" : "value5"
}
}
Jika dict tersebut memiliki key1==value1, saya akan menambahkan dict tersebut ke dalam daftar.
Misalkan key1==value1 tidak ada pada pasangan nilai kunci pertama, padahal key1==value1 berada di dalam dict bersarang sebagai berikut:
{
"key2" : "value2",
"key3" : "value3",
"key4" : {
"key5" : "value5",
"key1" : "value1",
"key6" : {
"key7" : "value7",
"key1" : "value1"
}
},
"key8" : {
"key9" : "value9",
"key10" : {
"key11" : "value11",
"key12" : "value12",
"key1" : "value1"
}
}
}
Pada dict di atas saya harus cek dulu apakah ada key1=value1. Jika tidak, saya harus melintasi dict yang disarangkan dan jika ditemukan di dict yang disarangkan, saya harus menambahkan dict itu ke daftar. Jika dict yang disarangkan juga merupakan dict yang disarangkan tetapi key1=value1 ditemukan di pasangan nilai kunci pertama, maka tidak perlu memeriksa dict bagian dalam (Misalnya, key4 memiliki key1=value1 di pasangan nilai kunci pertama. Oleh karena itu, tidak perlu periksa bagian dalam meskipun key6 memiliki key1=value1).
Jadi akhirnya, saya akan memiliki daftarnya sebagai berikut.
[
{
"key5" : "value5",
"key1" : "value1",
"key6" : {
"key7" : "value7",
"key1" : "value1"
}
},
{
"key11" : "value11",
"key12" : "value12",
"key1" : "value1"
}
]
Bagaimana cara mencapainya? Catatan: Kedalaman dict mungkin berbeda-beda