python中字符串前的'u'是啥意思? [复制]

Posted

技术标签:

【中文标题】python中字符串前的\'u\'是啥意思? [复制]【英文标题】:What does 'u' before a string in python mean? [duplicate]python中字符串前的'u'是什么意思? [复制] 【发布时间】:2012-10-07 21:06:25 【问题描述】:

可能重复:What does the ‘u’ symbol mean in front of string values?

我有这个 json 文本文件:


   "EASW_KEY":" aaaaaaaaaaaaaaaaaaaaaaa",
   "EASF_SESS":" aaaaaaaaaaaaaaaaaaaaaaa",
   "PHISHKEY":" aaaaaaaaaaaaaaaaaaaaaaa",
   "XSID":" aaaaaaaaaaaaaaaaaaaaaaa"

如果我这样解码:

import json
data = open('data.txt').read()
data = json.loads(data)
print data['EASW_KEY']

我明白了:

u' aaaaaaaaaaaaaaaaaaaaaaa' 

而不是简单地:

aaaaaaaaaaaaaaaaaaaaaaa

u 是什么意思?

【问题讨论】:

docs.python.org/howto/unicode.html 【参考方案1】:

python中字符串前的'u'是什么意思?

python 字符串前缀的字符称为 python 字符串编码声明。你可以在这里阅读所有关于它们的信息:https://docs.python.org/3.3/reference/lexical_analysis.html#encoding-declarations

u 代表 unicode。该槽中的替代字母可以是 r'foobar' 用于原始字符串,b'foobar' 用于字节字符串。

关于 Python 认为 unicode 的一些帮助: http://docs.python.org/howto/unicode.html

然后要探索其本质,请运行以下命令:

type(u'abc')

返回:

<type 'unicode'>

如果您在应该使用 ascii 时使用 Unicode,或者在应该使用 unicode 时使用 ascii,那么当用户在运行时开始“探索 unicode 空间”时,您很可能会遇到冒泡实现。

例如,如果您将 unicode 字符串传递给 facebook 的 api.fql(...) 函数,它表示它接受 unicode,它会愉快地处理您的请求,然后返回未定义的结果,就好像该函数成功了一样地毯。

如本文所述:

FQL multiquery from python fails with unicode query

某些 unicode 字符会导致您在生产中的代码发生癫痫发作,然后吐得一地。因此,请确保您没事,并且客户可以忍受。

【讨论】:

您的“编码声明”链接指向一个谈论完全不同的东西的页面。字符串上的u 前缀不称为编码声明。【参考方案2】:

unicode 对象的repr 中的u 前缀表示它是一个unicode 对象。

如果您真的只是 printing unicode 对象本身,而不是包含它的列表,那么您应该不会看到这一点。 (事实上​​,运行你的代码并不会像这样打印它。)

【讨论】:

以上是关于python中字符串前的'u'是啥意思? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

C#中变量名前的@符号是啥意思? [复制]

函数签名中变量名前的 * 和 ** 是啥意思? [复制]

字符串文字前的符号“@”是啥意思? [复制]

Ruby中常量前的冒号是啥意思? [复制]

python中字符串前的r什么意思

在 Python 格式(f-string)字符串中,!r 是啥意思? [复制]