保存数据时mangokit SchemaTypeError

时间:2015-09-27 09:31:21

标签: python mongokit

我有一个mongokit模型:

class Job(Document):
    __collection__ = 'jobs'
    structure = {
        'data': dict,
        'queue': basestring,
        'executor': mongokit.OR(basestring, dict),
        'state_name': basestring,
        'state': mongokit.OR(basestring, dict),
        'inherit': basestring,
    }
    default_values = {}
    required_fields = []

当我保存数据时,它会引发SchemaTypeError: executor must be an instance of <basestring or dict> not unicode

unicodebasestring的子类型。这个错误使我感到困惑。

这些是我的依赖版本:

  • python:2.7.10
  • mongokit:0.9.1.1

1 个答案:

答案 0 :(得分:0)

有关Python中字符串的一些信息:

首先,“python中的所有内容都是对象。”

Object
  1. Basestring
       1. str
       2. unicode

明确表示理解:

In [1]: unicode_str = u"I am unicode"
In [2]: normal_str = "I am normal string"

In [3]: isinstance(unicode_str, unicode)
Out[3]: True

In [4]: isinstance(unicode_str, str)
Out[4]: False

道德: unicode的类型将是unicode而不是basetring。因此,您遇到了这样的错误。

因此,在将字符串数据传递给字段executor时,将其转换为字符串。