mirror of https://github.com/scrapy/scrapy.git
Add set serialization to ScrapyJSONEncoder
This commit is contained in:
parent
80c296e091
commit
e17fdd7276
|
|
@ -14,7 +14,9 @@ class ScrapyJSONEncoder(json.JSONEncoder):
|
|||
TIME_FORMAT = "%H:%M:%S"
|
||||
|
||||
def default(self, o):
|
||||
if isinstance(o, datetime.datetime):
|
||||
if isinstance(o, set):
|
||||
return list(o)
|
||||
elif isinstance(o, datetime.datetime):
|
||||
return o.strftime("%s %s" % (self.DATE_FORMAT, self.TIME_FORMAT))
|
||||
elif isinstance(o, datetime.date):
|
||||
return o.strftime(self.DATE_FORMAT)
|
||||
|
|
|
|||
|
|
@ -23,9 +23,14 @@ class JsonEncoderTestCase(unittest.TestCase):
|
|||
ts = "10:11:12"
|
||||
dec = Decimal("1000.12")
|
||||
decs = "1000.12"
|
||||
s = {'foo'}
|
||||
ss = ['foo']
|
||||
dt_set = {dt}
|
||||
dt_sets = [dts]
|
||||
|
||||
for input, output in [('foo', 'foo'), (d, ds), (t, ts), (dt, dts),
|
||||
(dec, decs), (['foo', d], ['foo', ds])]:
|
||||
(dec, decs), (['foo', d], ['foo', ds]), (s, ss),
|
||||
(dt_set, dt_sets)]:
|
||||
self.assertEqual(self.encoder.encode(input), json.dumps(output))
|
||||
|
||||
def test_encode_deferred(self):
|
||||
|
|
|
|||
Loading…
Reference in New Issue