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

标签 python json unicode

<分区>

Possible Duplicate:
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' 

而不是简单地:

aaaaaaaaaaaaaaaaaaaaaa

u 是什么意思?

最佳答案

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 空间”时,你很可能会遇到 bubbleup implementationitis。

例如,如果你将一个 unicode 字符串传递给 facebook 的 api.fql(...) 函数,它表示它接受 unicode,它会很乐意处理你的请求,然后返回 undefined结果就像函数成功一样,因为它吐了一地地毯。

如本文中所定义:

FQL multiquery from python fails with unicode query

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

关于python - python中字符串前的 'u'是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12937172/

相关文章:

python - 使用 django 应用程序从 MySQL 中的现有表中检索数据

php - 遍历json数组并插入mysql php

android - 使用 android volley 库解析 JSON 数组中的 JSON 对象

json - Angular 2 Pipe - 按 JSON 键过滤

python - wsgi - 处理帖子中的 unicode 字符

unicode - 如何在 Perl6 中按名称搜索 Unicode 代码点?

python - 执行 os.walk 时出现 UnicodeDecodeError

python - 使用 FIFO 在没有标准输入/标准输出的情况下运行 pdb

python - Django-registration and ReCaptcha integration - 如何传递用户的IP

python - 根据另一个数组中的内容删除一个数组中的项目 - python