Я знаю, что это старая тема, но, будучи первой, показанной в Google и учитывая, что я не нашел ни одного из ответов, удовлетворительных, я оставлю это здесь для дальнейшего использования:
six - это библиотека совместимости Python 2 и 3, которая уже охватывает эту проблему.Затем вы можете сделать что-то вроде этого:
import six
if isinstance(value, six.string_types):
pass # It's a string !!
Проверка кода, вот что вы найдете:
import sys
PY3 = sys.version_info[0] == 3
if PY3:
string_types = str,
else:
string_types = basestring,