嗨,我試圖解決字典和基於成功 打印值如果「成功」的值爲真不是增加1否則爲0 爲前:字典是蟒蛇情結字典理解
info = {'data': {'sample1': {'item': 'fruit1',
'id': 1,
'results': {'Apple': [{
'start_ts': 1487579550,
'success': True}],
'Mango': [{
'start_ts': 1487579550,
'success': True}]
}
},
'sample2': {'item': 'fruit1',
'id': 2,
'results': {'Apple': [{
'start_ts': 1487579550,
'success': True}],
'Mango': [{
'start_ts': 1487579550,
'success': False}]
}
},
'sample3': {'item': 'fruit2',
'id': 3,
'results': {'Apple': [{
'start_ts': 1487579550,
'success': True}],
'Mango': [{
'start_ts': 1487579550,
'success': False}]
}
}
}}
產出應該基於「水果1」和水果2的所有項目的成功,並且需要增加。
輸出:
Apple Mango
fruit1 2 1
fruit2 1 0
什麼是迭代這個複雜的字典最佳途徑。 我嘗試了一些基本代碼:
for k, v in info.items():
for i,sample in v.items():
pprint.pprint(sample['results']) # Prints diction of Apples and Mango
有你嘗試自己做任何事? – depperm
使用簡單的循環和數量變量必須足夠。我希望你想要的是學習如何最有效地做到這一點,所以也許你必須告訴我們你以前試圖問。 –
我認爲你在代碼示例中有一個錯誤,因爲如果你有一個名爲'data'的鍵並且是一個樣本列表,你需要使用'[]'來存儲樣本列表,比如鍵值' data'。爲了使這更容易,您可以刪除樣本的名稱,如'sample1',如果您是生成字典。 –