如何检查Python对象是否为字符串(常规或Unicode)?


当前回答

isinstance(your_object, basestring)

如果对象确实是字符串类型,则为True。'str'是保留字。

我的道歉, 正确的答案是使用'basestring'而不是'str',以便它也包括unicode字符串-正如上面其他响应者之一所指出的那样。

其他回答

isinstance(your_object, basestring)

如果对象确实是字符串类型,则为True。'str'是保留字。

我的道歉, 正确的答案是使用'basestring'而不是'str',以便它也包括unicode字符串-正如上面其他响应者之一所指出的那样。

Python 3

在Python 3中。x basestring不再可用,因为str是唯一的字符串类型(与Python 2的语义相同)。x的unicode)。

Python 3中的检查。X就是:

isinstance(obj_to_test, str)

这遵循了官方2to3转换工具的修复:将basestring转换为str。

Python 2和3

(cross-compatible)

如果你想检查不考虑Python版本(2。x vs . 3.x),使用six (PyPI)及其string_types属性:

import six

if isinstance(obj, six.string_types):
    print('obj is a string!')

在六个(一个非常轻量级的单文件模块)中,它只是这样做的:

import sys
PY3 = sys.version_info[0] == 3

if PY3:
    string_types = str
else:
    string_types = basestring

为了检查你的变量是不是你可以这样做:

s='Hello World'
if isinstance(s,str):
#do something here,

阻力的输出会给你一个布尔值True或False,这样你就可以相应地调整。 你可以通过以下方法检查你的值的首字母缩写: 类型(年代) 这将返回您键入'str',以便您可以在isistance函数中使用它。

Python 2

对于测试对象obj,使用isinstance(obj, basestring)。

文档。