我正在使用它返回的數據中非常詳細的API的幾個端點。我想將這些數據的一個子集提供給另一段代碼。如何屏蔽Python 3嵌套字典以返回僅包含特定項目的新字典?
假如我是給幾本詞典這樣的(這我通過計劃循環和過濾):
asset = {
'id': 1,
'name': 'MY-PC',
'owner': 'me',
'location': 'New York City',
'model': {
'id': 1,
'name': 'Surface',
'manufacturer': {
'id': 1,
'name': 'Microsoft'
}
}
}
我希望創建一個將在該字典的功能,具有「屏蔽」沿將被用於創建僅允許項目的新字典。
mask = {
'id': True,
'name': True,
'model': {
'id': True,
'name': True,
'manufacturer': {
'name': True
}
}
}
函數應該然後返回此:
mask = {
'id': 1,
'name': 'MY-PC',
'model': {
'id': 1,
'name': 'Surface',
'manufacturer': {
'name': 'Microsoft'
}
}
}
有已建成的東西,這可能是一個例子面罩(不過,我可以用任何格式,使生成的代碼最簡潔的工作)到Python 3,這將有助於這方面的援助?看起來如果我必須手動執行此操作,它會很快變得非常難看。我發現itertools.compress
,但這似乎是列表,並不會處理字典的複雜性。
您是否聽說過['jq(1)'](https://stedolan.github.io/jq/)? – o11c
掩碼鍵沒有匹配的數據鍵時會發生什麼? –