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

gag*_*ina 4 python unicode json

可能重复:
'u'符号在字符串值前面的含义是什么?

我有这个json文本文件:

{
   "EASW_KEY":" aaaaaaaaaaaaaaaaaaaaaaa",
   "EASF_SESS":" aaaaaaaaaaaaaaaaaaaaaaa",
   "PHISHKEY":" aaaaaaaaaaaaaaaaaaaaaaa",
   "XSID":" aaaaaaaaaaaaaaaaaaaaaaa"
}
Run Code Online (Sandbox Code Playgroud)

如果我像这样解码它:

import json
data = open('data.txt').read()
data = json.loads(data)
print data['EASW_KEY']
Run Code Online (Sandbox Code Playgroud)

我明白了:

u' aaaaaaaaaaaaaaaaaaaaaaa' 
Run Code Online (Sandbox Code Playgroud)

而不是简单地:

aaaaaaaaaaaaaaaaaaaaaaa

u是什么意思?

Eri*_*ski 6

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

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

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

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

然后要探索它的本质,运行此命令:

type(u'abc')
Run Code Online (Sandbox Code Playgroud)

收益:

<type 'unicode'>
Run Code Online (Sandbox Code Playgroud)

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

例如,如果你将一个unicode字符串传递给facebook的api.fql(...)函数,它表示它接受unicode,它将很乐意处理你的请求,然后返回未定义的结果,好像该函数成功,因为它在整个地毯上呕吐.

如本文所定义:

python中的FQL多查询失败,带有unicode查询

Unicode是一个饱含地雷的战场,让它被隔离,因为它是敌对用户输入的病毒载体,将被用作骡子和载体,以便在命令链上传递66阶段自毁序列.你被警告了.

这些野蛮人在带有unicode的护城河中进入,你必须为所有这些人做好准备,并且每3个元组都要做好准备: 在此输入图像描述

大约3%的上述字符会导致你的代码在生产中被癫痫发作然后在地板上呕吐.