【问题标题】:How do I tell dict() in Python 2 to use unicode instead of byte string?如何告诉 Python 2 中的 dict() 使用 unicode 而不是字节字符串?
【发布时间】:2013-12-19 20:49:39
【问题描述】:

这是一个例子:

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

我怎样才能告诉dict() 构造函数使用Unicode 而不是写像u'a' 这样的字符串文字显式?我正在从默认使用 unicode 的 json 模块加载字典。我想从现在开始使用unicode。

【问题讨论】:

    标签: python unicode dictionary python-2.x


    【解决方案1】:

    要获取带有 Unicode 键的 dict,请在构造 dict 时使用 Unicode 字符串:

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

    从关键字参数创建的字典总是有字符串键。如果您希望这些是 Unicode(以及所有其他字符串),请切换到 Python 3。

    【讨论】:

    • 是的。但是,如果我想使用 a 而不是显式使用字符串文字?
    • @CppLearner:你不能用dict()。那是使用 Python 关键字,它们总是(字节)字符串。
    • 啊,谢谢。刚刚看到编辑和伊格纳西奥的回答。因此,默认情况下,只有 Python 3 能够在构造函数中使用关键字参数来执行此操作。
    • @CppLearner 是的,答案就是这样。
    【解决方案2】:

    2.x 中的关键字参数只能使用 ASCII 字符,即字节串。要么使用 dict 文字,要么使用允许指定完整类型的构造函数之一。

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

    【讨论】:

    • 目前我手边没有 3.x。所以在 3.x 中使用关键字参数默认是 unicode 还是不是?
    • @CppLearner:在 3.x 中,Unicode 是字符串句点的默认类型,标识符可以使用任何 Unicode 字母后跟任意数量的 Unicode 字母或数字。 3>> dict(a=2, あ=3){'あ': 3, 'a': 2}
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-02
    • 2014-01-14
    • 1970-01-01
    • 2021-10-27
    • 1970-01-01
    • 2012-04-21
    相关资源
    最近更新 更多