How do I tell dict() in Python 2 to use unicode instead of byte string?

喜你入骨 提交于 2019-12-09 18:20:42

问题


Here is an example:

d = dict(a = 2)
print d
{'a': 2}

How can I tell dict() constructor to use Unicode instead without writing the string literal expliclity like u'a'? I am loading a dictionary from a json module which defaults to use unicode. I want to make use of unicode from now on.


回答1:


To get a dict with Unicode keys, use Unicode strings when constructing the dict:

>>> d = {u'a': 2}
>>> d
{u'a': 2}

Dicts created from keyword arguments always have string keys. If you want those to be Unicode (as well as all other strings), switch to Python 3.




回答2:


Keyword arguments in 2.x can only use ASCII characters, which means bytestrings. Either use a dict literal, or use one of the constructors that allows specifying the full type.

>>> dict(((u'a', 2),))
{u'a': 2}


来源:https://stackoverflow.com/questions/20357210/how-do-i-tell-dict-in-python-2-to-use-unicode-instead-of-byte-string

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!