我正在解析一個json
- >dict
具有嵌套在任意深度值的對象。例如,外層是字段(數據來自客戶服務售票系統),例如'name','sprint_team'等等。但是對於某些字段,它們有嵌套的dict
,它們將具有像' id','value'等...如何處理任意嵌套深度的字典屬性?
我把它放在一個平面文件中,然後複製到AWS Redshift,但我試圖找出一種有效的方法來處理所有我可能需要的值的不同嵌套級別。我想用一個查找表,如:
lookup = {
'customfield_12700': ('sprint_team', 'name'),
'customfield_13208': ('department', 'sub_department', 'name')
}
其中value[0]
總是查找名稱,然後可以有額外參數,這將是我的嵌套層次的n個。我首先使用查找表的原因是因爲Jira使用自定義字段,我需要將它們映射到我們的雲數據庫中的列名稱。例如,在sprint_team
字段上,我需要我的平面文件的name
屬性等...
如何創建一個函數,該函數將採用字典對象,然後使用查找表來返回我需要的值,不管它的嵌套程度如何?
你在找這樣的事嗎? http://stackoverflow.com/questions/10756427/loop-through-all-nested-dictionary-values – idjaw
遞歸是我的第一個想法,但我通常回避在將用於生產的代碼中使用遞歸。 – flybonzai
如果你有一個遞歸結構需要被平滑,那麼沒有理由迴避遞歸解析。這不是實現目標的最佳方式,它是**正確的方式**來實現這些目標。由於您的問題*需要*將分層數據移動到標準RDBM,因此在存儲之前應該考慮正確地對輸入進行標準化。 – msw