【python】报错:TypeError: 'builtin_function_or_method' object is unsubscriptable的解决方法
·
出现这个报错的原因其实很简单,就是将小括号'()'写成了中括号‘[]'
下面来看一个例子:
当一个字典里面嵌套了字典和列表的时候,再通过字典多层调用,将get函数后的小括号写成了中括号。如下面代码第二行:
1.def lookup(data,label,name):
2. return data[label].get[name]
3.data = {'first': { 'zhang': ['zhang san feng'],'li':['li si','li zhi']},
4. 'middle': { 'san': ['zhang san feng']},
5. 'last': { 'feng': ['zhang san feng'],'si':['li si'],'zhi':'li zhi'}}
6.print(lookup(data,'first','li'))
运行结果:
TypeError: 'builtin_function_or_method' object is not subscriptable
下面我们将代码改为正确的:
1.def lookup(data,label,name):
2. return data[label].get(name)
3.data = {'first': { 'zhang': ['zhang san feng'],'li':['li si','li zhi']},
4. 'middle': { 'san': ['zhang san feng']},
5. 'last': { 'feng': ['zhang san feng'],'si':['li si'],'zhi':'li zhi'}}
6.print(lookup(data,'first','li'))
再次运行:
['li si', 'li zhi']
成功的将名字首字母为 "li" 的查询出来。
更多推荐
已为社区贡献4条内容
所有评论(0)