Python:“列表索引必须是整数或切片,而不是元组”

时间:2019-07-20 00:27:48

标签: python

我有一个xml解析器,可以解析代码,并给我一个嵌套的列表(希望如此),其中包含标题和页面列表:

if name == 'page':
    self._pages.append((self._values['title'], self._values['text']))

我想遍历此嵌套列表以查找某些字符串。但是我的循环给我一个错误

list indices must be integers or slices, not tuple

循环:

for e in handler._pages:
    title = mwparserfromhell.parse(handler._pages[e][0])

编辑: 我在类竞争处理程序中定义了_pages,如下所示:

class WikisourceXmlHandler(xml.sax.handler.ContentHandler):
    def __init__(self):
xml.sax.handler.ContentHandler.__init__(self)
        self._buffer = None
        self._current_tag = None
        self._values = {}
        self._pages = []

根据约翰建立的线索,我得出了:

title = mwparserfromhell.parse(handler._pages[e][0]) 
page = mwparserfromhell.parse(handler._pages) title = page[0]

但是我得到了错误:

TypeError: 'list' object is not callable

1 个答案:

答案 0 :(得分:5)

据我所知,您的self._pages是一个元组列表。那么在您的for循环中,e是列表中的元素,而不是索引。很难从不完整的图片中看出来,但是我认为您想要这样做:

for e in handler._pages:
    title = mwparserfromhell.parse(e[0])