我该怎么做:

>>> s = u'hello'
>>> isinstance(s,str)
False


但是我想isinstance为此Unicode编码的字符串返回True。有Unicode字符串对象类型吗?

最佳答案

对于Python2,您可以使用basestring进行以下两项测试:

isinstance(unicode_or_bytestring, basestring)


basestring仅在Python 2中可用,并且是strunicode的抽象基本类型。

如果您只想测试unicode,则应明确地进行测试:

isinstance(unicode_tring, unicode)


对于Python 3,仅测试str

isinstance(unicode_or_bytestring, str)


或者,如果必须处理字节串,请分别测试bytes

isinstance(unicode_or_bytestring, bytes)


两种类型是故意不可互换的。使用显式编码(strbytes)和解码(bytesstr)在类型之间进行转换。

关于python - 使用isinstance测试Unicode字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57688766/

10-13 06:43