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 对象。
如果您真的只是 print
ing unicode 对象本身,而不是包含它的列表,那么您应该不会看到这一点。 (事实上,运行你的代码并不会像这样打印它。)
【讨论】:
以上是关于python中字符串前的'u'是啥意思? [复制]的主要内容,如果未能解决你的问题,请参考以下文章