Login | Register For Free | Help
Search for: (Advanced)

Mailing List Archive: Python: Python

Unicode lists and join (python 2.2.3)

 

 

Python python RSS feed   Index | Next | Previous | View Threaded


nkarkhan at gmail

May 25, 2008, 12:42 PM

Post #1 of 2 (35 views)
Permalink
Unicode lists and join (python 2.2.3)

Hello,
I have a list of strings, some of the strings might be unicode. I am
trying to a .join operation on the list and the .join raises a unicode
exception. I am looking for ways to get around this.
I would like to get a unicode string out of the list with all string
elements seperated by '\n'

#!/usr/bin/env python
import sys
import string

try:
x = [u"\xeeabc2:xyz", u"abc3:123"]
u = "\xe7abc"
x.append("%s:%s" % ("xfasfs", u))
x.append(u"Hello:afddfdsfa")

y = u'\n'.join(x)
print("Unicode Call worked!")
except Exception, err:
print("Exception raised %s" % err)



on a related note
Why does this work with no exceptions

x=[]
u = "\xe7abc"
x.append("%s:%s" % ("xfasfs", u))

and this doesnt
x=[]
u = "\xe7abc"
x.append("%s:%s" % (u"xfasfs", u))


Thanks,
Nitin.


--
http://mail.python.org/mailman/listinfo/python-list


martin at v

May 25, 2008, 1:06 PM

Post #2 of 2 (30 views)
Permalink
Re: Unicode lists and join (python 2.2.3) [In reply to]

> x = [u"\xeeabc2:xyz", u"abc3:123"]
> u = "\xe7abc"

u is not a Unicode string.

> x.append("%s:%s" % ("xfasfs", u))

so what you append is not a Unicode string, either.

> x.append(u"Hello:afddfdsfa")
>
> y = u'\n'.join(x)

As a consequence, .join tries to convert the byte string to
a Unicode string, and fails, because it contains non-ASCII
bytes.

> Why does this work with no exceptions
>
> x=[]
> u = "\xe7abc"
> x.append("%s:%s" % ("xfasfs", u))

% here is applied to a byte string, with all arguments also byte
strings. The result is a byte string.
>
> and this doesnt
> x=[]
> u = "\xe7abc"
> x.append("%s:%s" % (u"xfasfs", u))

% is applied to a byte string, with one argument being a Unicode
string. The result is a Unicode string, where all byte strings
get converted to Unicode. Converting u fails, as it has non-ASCII
bytes in it.

Regards,
Martin
--
http://mail.python.org/mailman/listinfo/python-list

Python python RSS feed   Index | Next | Previous | View Threaded
 
 


Interested in having your list archived? Contact lists@gossamer-threads.com
 
  Web Applications & Managed Hosting Powered by Gossamer Threads Inc.