首页 > 解决方案 > Python:在 python2 和 python3 中以相同的方式使用 unicode 文字

问题描述

多年没有写python代码,所以我的问题可能很傻很简单。我加载 json 数据:

import json
data = json.loads('{"hello": "world"}')

在 python 2 中,我应该以hello这种方式访问​​密钥:data[u'hello']. 有一个附加u符号,因为键是 Unicode。

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

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

标签: pythonpython-3.xunicode

解决方案


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

https://www.python.org/dev/peps/pep-0414/

或者,您将代码from __future__ import unicode_literals放在代码的顶部,然后所有字符串默认为 unicode 文字,b""即使在 Python2 中,您也必须在字节字符串前面使用前缀。


推荐阅读