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