我有一個(gè)復(fù)雜的代碼,它將一些值讀取到嵌套的 defaultdict 中。然后有一個(gè)循環(huán)遍歷字典中的鍵并使用它們 - 基本上將它們分配給另一個(gè)嵌套的默認(rèn)字典。問(wèn)題是,當(dāng)我想使用字典中的值并訪(fǎng)問(wèn)它們并將它們作為值傳遞給函數(shù)時(shí)...我得到空 {} 或類(lèi)似的內(nèi)容:defaultdict(<function tree at 0x2aff774309d8>我試圖寫(xiě)這個(gè)字典,這樣我就可以看看它是否真的是空的。我的代碼的一部分;if (not families_data[family]['cell_db']['output']): print(rf"Output for {family} is empty.") print(dict(families_data[family]['celldb']))真正有趣的部分是,當(dāng)這個(gè)“if”為真時(shí),我會(huì)得到以下輸出:adfull 的輸出為空。{'名稱(chēng)':'adfullx05_b','家庭':'adfull','drive_strength':0.5,'模板':'adfull','類(lèi)別':'','pinmap':'','輸出':' CO S', 'inout': '', '輸入': 'AB CI', 'rail_supply': 'VDD VSS', 'well_supply': '', '描述': ''}如果我將 if 中的第二行更改為 print(families_data[family]['celldb'])我得到以下輸出:defaultdict(<位于 0x2b45844059d8 的函數(shù)樹(shù)>, {'name': 'adfullx05_b', 'family': 'adfull', 'drive_strength': 0.5, 'template': 'adfull', 'category': '', 'pinmap' : '', '輸出': 'CO S', '輸入輸出': '', '輸入': 'AB CI', 'rail_supply': 'VDD VSS', 'well_supply': '', '描述': ' '})當(dāng)輸出鍵中有值“CO S”時(shí),為什么“if”甚至為真?當(dāng)我嘗試訪(fǎng)問(wèn)諸如 family_data[family]['cell_db']['input'] 之類(lèi)的任何值并將其作為參數(shù)傳遞給函數(shù)時(shí),為什么會(huì)收到 {}?我到底做錯(cuò)了什么?
1 回答

喵喵時(shí)光機(jī)
TA貢獻(xiàn)1846條經(jīng)驗(yàn) 獲得超7個(gè)贊
if 語(yǔ)句中的“cell_db”鍵有下劃線(xiàn),而 print 語(yǔ)句中沒(méi)有。
這應(yīng)該可以修復(fù)它:
if (not families_data[family]['celldb']['output']):
print(rf"Output for {family} is empty.")
print(dict(families_data[family]['celldb']))
添加回答
舉報(bào)
0/150
提交
取消