首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

Python字典查找錯誤:'str' object has no attribute 'get'

     編輯:程式設計疑難解答

錯誤代碼

def init(data):
    data["last"] = {}
    data["first"] = {}
storage = {}
init(storage)
storage['first'] = 'Chen'
storage['last'] = 'LinHua'

def lookup(data, label, name):
    return data[label].get(name)  # 報錯行

print(lookup(storage, 'first', 'Chen'))

錯誤原因

init() 將 data["first"] 初始化為空字典 {},但隨後代碼 storage['first'] = 'Chen' 將其覆蓋為字符串。調用 lookup() 時,data[label] 已是字符串,無 .get() 方法。

修正方案

# 方案1:調整數據結構,存儲列表或嵌套字典
storage = {'first': {'Chen': 'value'}, 'last': {'LinHua': 'value'}}

# 方案2:lookup中直接按鍵查找,不再調用.get()
def lookup(data, label, name):
    return data[label] == name  # 或根據實際需求返回值

核心教訓

  • 動態語言中變量類型可變,初始化後勿隨意覆蓋結構類型。
  • 調試時打印 type(data[label]) 快速定位類型不匹配問題。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved