Как я могу сказать dict() в Python 2 использовать unicode вместо строки байта?
Вот пример:
d = dict(a = 2)
print d
{'a': 2}
Как я могу описать конструктор dict()
, чтобы использовать Unicode вместо того, чтобы писать строковые литералы, такие как u'a'
? Я загружаю словарь из модуля json
, который по умолчанию использует unicode. Я хочу использовать unicode с этого момента.
Ответы
Ответ 1
Чтобы получить dict с ключами Unicode, используйте строки Unicode при построении dict:
>>> d = {u'a': 2}
>>> d
{u'a': 2}
У Dicts, созданных из аргументов ключевого слова, всегда есть строковые ключи. Если вы хотите, чтобы они были Unicode (а также все остальные строки), переключитесь на Python 3.
Ответ 2
Аргументы ключевого слова в 2.x могут использовать только символы ASCII, что означает bytestrings. Либо используйте литерал dict, либо используйте один из конструкторов, который позволяет указать полный тип.
>>> dict(((u'a', 2),))
{u'a': 2}