Używam colander
do sprawdzania poprawności (i deserializacji danych json) danych wejściowych do niektórych usług internetowych.Catch empty list with colander
Chciałbym dodać regułę do schematu durszlaka, aby złapać pustą listę, ale nie mogę wymyślić, jak to zrobić.
W tej chwili mam następujący przykład, demonstrujący wywołanie funkcji f()
z dwóch różnych zestawów danych. Chciałbym później wywołać wyjątek colander.Invalid
powodu pustego events
listy
import colander
def f(data):
class EventList(colander.SequenceSchema):
list_item = colander.SchemaNode(colander.Int())
class Schema(colander.MappingSchema):
txt = colander.SchemaNode(colander.String())
user = colander.SchemaNode(colander.String())
events = EventList()
try:
good_data = Schema().deserialize(data)
print 'looks good'
except colander.Invalid as e:
print "man, your data suck"
good_data = {'txt' : 'BINGO',
'user' : 'mogul',
'events' : [11, 22, 33]}
f(good_data)
bad_data = {'txt' : 'BOOM',
'user' : 'mogul',
'events' : []}
f(bad_data)
sugestie?
BANG! Spot na miejscu. Dzięki! Gdzieś w dole próbowałem prawie tego, ale nie mogłem tego naprawić. Gdzie jest przycisk darować piwo, gdy jest to potrzebne? – mogul