Newbie, list has no attribute iteritems
Bruno Desthuilliers
bruno.42.desthuilliers at websiteburo.invalid
Fri Jul 4 06:26:32 EDT 2008
rabad a écrit :
> Hi,
> I've created a custom filter based on HTMLParser, with the following
> source:
>
>(snip)
> But when I use it, it gives me the following error message:
> ERROR Processor exception: AttributeError: 'list' object has no
> attribute 'iteritems'
(snip)
> File "d:\esp\lib\python2.3\processors\DocDumpF.py", line 178, in
> __html_attrs
> _attrs = ' %s' % (' '.join([('%s="%s"' % (k,v)) for k,v in
> attrs.iteritems()
> ]))
>
> Anybody knows why it says attrs is not a list element?
Actually, what the traceback says is that
1/ attrs is a list object
2/ list objects have no attribute named iteritems
If you assumed it was a dict, then it's probably time to re-read
HTMLParser's doc. Else if you assumed list had an iteritems method, then
it's probably time to re-read the Python's tutorial !-)
IIRC, HTMLParser represents attributes as a list of (attrname, value)
pairs. If so (please check it out), your method should be rewritten as
return ' %s' % (' '.join(('%s="%s"') % attr for attr in attrs)
As a side note: __double_leading_undescores is probably a bit extrem.
The convention for implementation attributes is _single_leading_underscore.
More information about the Python-list
mailing list