<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Sep 23, 2014 at 3:01 PM, Larry Martell <span dir="ltr"><<a href="mailto:larry.martell@gmail.com" target="_blank">larry.martell@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">I have some code that I inherited:<br>
<br>
' '.join([self.get_abbrev()] +<br>
           [str(f['value')<br>
            for f in self.filters<br>
            if f.has_key('value')]).strip() <br></blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<br>
This broke today when it encountered some non-ascii data.<br></blockquote><div><br></div><div>One option would be to do the processing in unicode, and convert to utf-8 only when needed:</div><div><br></div><div>u' '.join([self.get_abbrev()] +<br>           [unicode(f['value')<br>            for f in self.filters<br>            if f.has_key('value')]).strip()</div><div><br></div><div>If needed, add a .encode('utf-8') to the end.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<br>
I changed the str(f['value']) line to f['value'].encode('utf-8'),<br>
which works fine, except when f['value'] is not a string (it could be<br>
anything).<br>
<br>
Without rewriting this without the list comprehension, how can I write<br>
this to deal with both strings and non-strings?<br>
<span class=""><font color="#888888">--<br>
<a href="https://mail.python.org/mailman/listinfo/python-list" target="_blank">https://mail.python.org/mailman/listinfo/python-list</a><br>
</font></span></blockquote></div><br></div></div>