问题
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