プロジェクトの1つでkendoUIグリッドを使用しています。APIを使用してデータを取得したところ、json/dictionaryに「不要な」データが追加されていることがわかりました。jsonをPyramidバックエンドに戻した後、これらのキーを削除する必要があります。問題は、辞書はどんな深さでもかまいません、そして私は前もって深さを知りません。
例:
product = {
id: "PR_12"
name: "Blue shirt",
description: "Flowery shirt for boys above 2 years old",
_event: {<some unwanted data here>},
length: <some unwanted data>,
items: [{_event: {<some rubbish data>}, length: <more rubbish>, price: 23.30, quantity: 34, color: "Red", size: "Large"}, {_event: {<some more rubbish data>}, length: <even more rubbish>, price: 34.50, quantity: 20, color: "Blue", size: "Large"} ....]
}
特に「_event」と「length」の2つのキーを削除したいと思います。データを削除する再帰関数を書いてみましたが、うまくいかないようです。誰か助けてもらえますか?
これが私が持っているものです:
def remove_specific_key(the_dict, rubbish):
for key in the_dict:
if key == rubbish:
the_dict.pop(key)
else:
# check for rubbish in sub dict
if isinstance(the_dict[key], dict):
remove_specific_key(the_dict[key], rubbish)
# check for existence of rubbish in lists
elif isinstance(the_dict[key], list):
for item in the_dict[key]:
if item == rubbish:
the_dict[key].remove(item)
return the_dict