我有一个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
答案 0 :(得分:5)
据我所知,您的self._pages
是一个元组列表。那么在您的for循环中,e
是列表中的元素,而不是索引。很难从不完整的图片中看出来,但是我认为您想要这样做:
for e in handler._pages:
title = mwparserfromhell.parse(e[0])