how to pass a dictionary (including chinese characters) through Queue as is?

Jean-Paul Calderone exarkun at divmod.com
Sat Oct 25 12:45:20 EDT 2008


On Sat, 25 Oct 2008 08:36:22 -0700 (PDT), ouyang <zxo102 at gmail.com> wrote:
>Hi everyone,
>    As indicated in the following python script, the dictionary b has
>Chinese characters: "中文". But a.get() returns the dictionary with a
>little bit different format for the "中文“:   '\xd6\xd0\xce\xc4' . How
>can I get the dictionary through the Queue as is?
>
>>>> import Queue
>>>> a = Queue.Queue(0)
>>>> b = {'a':'中文','b':1232,'c':'abc'}
>>>> a.put(b)
>>>> c = a.get()
>>>> c
>{'a': '\xd6\xd0\xce\xc4', 'c': 'abc', 'b': 1232}
>

Try printing b before you put it into the Queue.

The Queue isn't doing anything to the objects you pass through it,
you're just surprised at how repr() is presenting the un-altered
data.

Jean-Paul



More information about the Python-list mailing list