【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 评论

发表评论

精品游戏◆乐于分享


Title