是否有一种替代python 2 unicode()
函数的方法,可以在同时使用python 2和3的代码中使用,并且肯定会在python 2中产生unicode输出?
- python 3中不存在
unicode()
函数 six.u(u'xyz')
在python 2中引发错误
我正在编写测试代码,我肯定想生成unicode输出,这样如果它与执行路径中的某个非unicode字符串组合在一起,它就会在测试中爆炸——例如
'stuff %s' % u'unistuff'
对于我看到的一般情况,它建议只使用str()
,但在python 2中不产生unicode。
我想我可以:
if six.PY3:
unicode = str
但肯定有一些官方支持的方式。
(很难在谷歌上搜索到这一点,因为所有的结果都是关于unicode字符串的,而不是unicode函数本身)。
根据文档(我建议阅读…),您需要six.text_type
:
用于表示(Unicode)文本数据的类型。这是中的
unicode()
Python 2中的CCD_ 7。