类型对象不可下标-python

时间:2018-07-07 09:20:49

标签: python python-3.x

 from newsapi.sources import Sources
 import json
 api_key ='*******************'
 s = Sources(API_KEY=api_key)

他们输入了他们想要的新闻类别

 wanted = input('> ')
 source_list = s.get(category=wanted, language='en')

 index = 0
 sources = []

获取来源      用于source_list [“ sources”]中的源:

     data = json.dumps(source_list)
     data = json.loads(data)

     source = (data["sources"][index]["url"])
     sources.append(source)
     index += 1


 from newspaper import Article

 i = len(sources) - 1

遍历源代码列表并打印文章      对于来源中的来源:

     url_ = sources[i]

     a = Article[url_]  
     print(a)

     i -= 1

获取错误的'type'对象无法在a = Article[url_]行中进行下标,但仍然不明白为什么是我的情况。

1 个答案:

答案 0 :(得分:2)

您的问题的简单解决方案是:

a = Article[url_]

应该是:

a = Article(url_)

现在要说明为什么会出现TypeError: 'type' object is not subscriptable错误。

TypeError是python在使用方括号表示法object[key]时抛出的一个,其中对象未定义__getitem__方法。例如,在[]上使用object会抛出:

>>> object()["foo"]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'object' object is not subscriptable

在这种情况下,尝试实例化一个类时,偶然使用了[]而不是()。大多数类(包括此类Article都是type类的实例,因此尝试object["foo"]会导致与您遇到的错误相同的错误:

>>> object["foo"]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'type' object is not subscriptable