2

我最近看到一个 Python dict 看起来像这样:

test1 = {u'user':u'user1', u'user_name':u'alice'}

这让我有点困惑,u键/值对之前的内容是什么?它是某种前缀吗?这有什么不同:

test2 = {'user':'user1', 'user_name':'alice'}

我尝试过使用 test1 和 test2;他们似乎一点也不不同。有人能解释一下前缀的用途吗?

>>> test1 = {u'user':u'user1', u'user_name':u'alice'}
>>> test2 = {'user':'user1', 'user_name':'alice'} 
>>> print test1[u'user']
user1
>>> print test1['user']
user1
>>> print test2['user']
user1
>>> print test2[u'user']
4

2 回答 2

7

在 Python 2 中,您必须强制 Unicode 字符保留在 Unicode 中。

因此,u防止文本转换为 ASCII。(保留为 unicode)

例如,这在 Python 2 中不起作用:

'ô SO'.upper() == 'Ô SO''

除非你这样做:

u'ô SO'.upper() == 'Ô SO'

您可以阅读更多内容:文档

一些历史: PEP 3120

于 2013-04-25T20:29:17.443 回答
3

u'unicode string'将使字符串成为unicode类型,没有前缀的字符串是 ASCII 类型的字符串'ASCII string'

于 2013-04-25T20:32:20.263 回答