Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2014
268
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import datetime
  2. import json
  3. import re
  4.  
  5. rdate = re.compile(r'/Date\((\d+)([+-]\d\d)(\d\d)\)/')
  6.  
  7. decoder = json.JSONDecoder()
  8. scanstring = decoder.parse_string
  9. def parse_date_or_string(*args):
  10.     s, end = scanstring(*args)
  11.     print(s)
  12.     m = rdate.match(s)
  13.     if not m:
  14.         return s, end
  15.     ts = int(m.group(1)) / 1000
  16.     hroff = int(m.group(2))
  17.     minoff = int(m.group(3))
  18.     off = datetime.timedelta(hours=hroff, minutes=minoff)
  19.     tz = datetime.timezone(off)
  20.     return datetime.datetime.fromtimestamp(ts).replace(tzinfo=tz), end
  21. decoder.parse_string = parse_date_or_string
  22. decoder.scan_once = json.scanner.py_make_scanner(decoder)
  23.  
  24. print(decoder.decode("""{"timestamp": "/Date(1405961743000+0100)/"}"""))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement