【发布时间】:2015-09-25 04:09:38
【问题描述】:
我正在尝试使用 voluptuous 来验证来自 HTTP 请求的 JSON 输入。但是,它似乎不能很好地处理 unicode 字符串。
from voluptuous import Schema, Required
from pprint import pprint
schema = Schema({
Required('name'): str,
Required('www'): str,
})
data = {
'name': 'Foo',
'www': u'http://www.foo.com',
}
pprint(data)
schema(data)
以上代码产生如下错误:
voluptuous.MultipleInvalid: expected str for dictionary value @ data['www']
但是,如果我从 URL 中删除 u 符号,一切正常。这是一个错误还是我做错了?
ps。如果它与它有任何关系,我正在使用 python 2.7。
【问题讨论】:
-
为什么你的 url 使用 unicode?span>
-
@WardC 我并没有特别这样做。以上是缩小问题范围的最小版本。在实际代码中,数据以纯字符串形式呈现,通过 nodetest 并以某种方式在达到 voluptuous 时以 unicode 结尾。
标签: python string python-2.7 unicode voluptuous