Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:在python2和python3中以相同的方式使用unicode文本_Python_Python 3.x_Unicode - Fatal编程技术网

Python:在python2和python3中以相同的方式使用unicode文本

Python:在python2和python3中以相同的方式使用unicode文本,python,python-3.x,unicode,Python,Python 3.x,Unicode,我已经很多年没有编写python代码了,所以我的问题可能既愚蠢又简单。我加载json数据: import json data = json.loads('{"hello": "world"}') 在Python2中,我应该通过以下方式访问hello键:data[u'hello']。还有一个额外的u符号,因为键是Unicode 在python 3中:数据['hello']。默认情况下为Unicode字符串 如果我想编写可移植代码,该怎么办?只要您使用的是Python 3.3或更高版本,就可以在字

我已经很多年没有编写python代码了,所以我的问题可能既愚蠢又简单。我加载json数据:

import json
data = json.loads('{"hello": "world"}')
在Python2中,我应该通过以下方式访问
hello
键:
data[u'hello']
。还有一个额外的
u
符号,因为键是Unicode

在python 3中:
数据['hello']
。默认情况下为Unicode字符串


如果我想编写可移植代码,该怎么办?

只要您使用的是Python 3.3或更高版本,就可以在字符串上使用unicode前缀。这将允许您编写在Python2和Python3.3+上运行而无需更改的代码


或者,您可以在代码顶部从“未来”导入unicode文本进行
,然后所有字符串默认为unicode文本,即使在Python2中,您也必须在字节字符串前面使用
b”“
前缀。

将其添加到文件顶部

# -*- coding: utf-8 -*-

from __future__ import unicode_literals

这仍然与python3中的不完全相同,但有助于使其可移植。如果您愿意为2和3都支持它,那么您必须查看six模块,以及处理生成器/迭代器、字符串差异。

数据[u'hello']
在Python2和3中都可以使用。 但是
data.get('hello')
甚至更好