def default(self, o): if isinstance(o, AudioQuantum): return self.map_instance_variables(o, "start", "duration", "confidence") elif isinstance(o, AudioAnalysis): return self.map_instance_variables(o, *AUDIO_ANALYSIS_KEYS) elif isinstance(o, Track) or isinstance(o, audio.LocalAudioFile): # Don't know what should be serialized return {} else: JSONEncoder.default(self, o)
def default(self, obj): if isinstance(obj.__class__, DeclarativeMeta): # an SQLAlchemy class fields = {} for field in [x for x in dir(obj) if not x.startswith('_') and x != 'metadata']: data = obj.__getattribute__(field) if isinstance(data, date): data = str(data) if isinstance(data, Name)\ or isinstance(data, Speaker)\ or isinstance(data, Congregation)\ or isinstance(data, Outline)\ or isinstance(data, OCLM): data = loads(dumps(data, cls=AlchemyEncoder)) try: dumps(data) # this will fail on non-encodable values, like other classes fields[field] = data except TypeError: x = 1 # none # a json-encodable dict return fields return JSONEncoder.default(self, obj)
def default(self, obj): if isinstance(obj, datetime.datetime): return obj.strftime('%a %b %d %H:%M:%S %Y') elif isinstance(obj, ndb.Model): return obj.to_dict() else: return JSONEncoder.default(self, obj)
def default(self, o): if isinstance(o, Session): return str(o.sid) if isinstance(o, OAuthHmacToken): return o.token if isinstance(o, datetime): return o.isoformat() if isinstance(o, ndb.Key): assert isinstance(o, ndb.Key) debug("encoding ndb.Key %s to JSON" % o) entity = o.get() if entity is None: return None return unicode(o.get().to_dict()) if isinstance(o, db.Key): assert isinstance(o, db.Key) debug("encoding db.Key %s to JSON" % o) return unicode(o) if isinstance(o, ndb.Model): return o.to_dict() debug("encoding NdbModel %s to JSON" % o) if isinstance(o, Columns): assert isinstance(o, Columns) debug("encoding Columns %s to JSON" % o) return o.getDataTableCols() debug("encoding unknown object %s, %s " % (type(o), o)) return _JSONEncoder.default(self, o)
def default(self, obj): if isinstance(obj, QuerySet): # `default` must return a python serializable # structure, the easiest way is to load the JSON # string produced by `serialize` and return it return loads(serialize('json', obj)) return JSONEncoder.default(self, obj)
def default(self, obj): try: key = str(type(obj).__name__) return _TYPE_FUNCS[ key ](obj) except KeyError, e: print "JSONPLUSTYPES:'key':{0} not found".format(key) return JSONEncoder.default(self, obj)
def default(self, obj, **kwargs): if isinstance(obj, ObjectId): return str(obj) elif isinstance(obj, datetime.datetime) or isinstance(obj, datetime.date) or isinstance(obj, datetime.time): return unicode(obj) else: return JSONEncoder.default(obj, **kwargs)
def default(self, obj): if isinstance(obj, PRecord): result = dict(obj) result[_CLASS_MARKER] = obj.__class__.__name__ return result elif isinstance(obj, PClass): result = obj.evolver().data result[_CLASS_MARKER] = obj.__class__.__name__ return result elif isinstance(obj, PMap): return {_CLASS_MARKER: u"PMap", u"values": dict(obj).items()} elif isinstance(obj, (PSet, PVector, set)): return list(obj) elif isinstance(obj, FilePath): return {_CLASS_MARKER: u"FilePath", u"path": obj.path.decode("utf-8")} elif isinstance(obj, UUID): return {_CLASS_MARKER: u"UUID", "hex": unicode(obj)} elif isinstance(obj, datetime): if obj.tzinfo is None: raise ValueError( "Datetime without a timezone: {}".format(obj)) return {_CLASS_MARKER: u"datetime", "seconds": timegm(obj.utctimetuple())} return JSONEncoder.default(self, obj)
def default(self, obj): if isinstance(obj, self._registered_types_list): # Minor optimization, enter loop only when we are instance of a supported type. for type_, encoder in self._registered_types_map.items(): if isinstance(obj, type_): return encoder(obj) elif hasattr(obj, '__json__') and callable(obj.__json__): return obj.__json__() elif isinstance(obj, (datetime.date, datetime.datetime)): if self._isodates: if isinstance(obj, datetime.datetime): obj = obj.replace(microsecond=0) return obj.isoformat() else: return str(obj) elif isinstance(obj, decimal.Decimal): return float(obj) elif is_saobject(obj): return dictify_sqla(obj) elif is_mingobject(obj): return dictify_ming(obj) elif is_query_result(obj): return dict(rows=list(obj), count=obj.rowcount) elif is_query_row(obj): return dict(rows=dict(obj), count=1) elif is_objectid(obj): return str(obj) elif isinstance(obj, MultiDict): return obj.mixed() elif isinstance(obj, types.GeneratorType): return list(obj) else: return _JSONEncoder.default(self, obj)
def default(self, obj): """ Returns instance of a `dict` from an ndb object. :param value: Value to get dictionary for. If not encodable, will call the superclasses default method. """ if isinstance(obj, query.Query): return list(obj) elif isinstance(obj, ndb.Cursor): return obj.urlsafe() elif isinstance(obj, ndb.BlobKey): return str(obj) elif isinstance(obj, ndb.Key): return obj.urlsafe() elif hasattr(obj, 'to_dict'): return getattr(obj, 'to_dict')( includes=self.__includes, excludes=self.__excludes) elif isinstance(obj, datetime): return to_epoch(obj) elif isinstance(obj, date): return to_epoch(datetime(obj.year, obj.month, obj.day)) return JSONEncoder.default(self, obj)
def default(self, obj): if isinstance(obj, datetime): return obj.strftime('%Y-%m-%d %H:%M:%S') elif isinstance(obj, date): return obj.strftime('%Y-%m-%d') else: return JSONEncoder.default(self, obj)
def json_encoder(obj): if isinstance(obj, boto.regioninfo.RegionInfo): return obj.name elif isinstance(obj, datetime.datetime): return int(mktime(obj.timetuple())) return JSONEncoder.default(self, obj)
def default(self, obj, **kwargs): if isinstance(obj, ObjectId): return str(obj) elif isinstance(obj, datetime): return obj.isoformat() else: return JSONEncoder.default(obj, **kwargs)
def default(self, obj): if obj.__class__ in self.type_map: nj = to_json(obj) nj['__type__'] = self.type_map[obj.__class__] return nj else: return JSONEncoder.default(self, obj)
def default(self, obj): if isinstance(obj, Fault): return self.default(obj.value) elif isinstance(obj, set): return sorted(obj) else: return JSONEncoder.default(self, obj)
def default(self, obj): if isinstance(obj, (list, dict, unicode, int, float, bool, type(None))): return JSONEncoder.default(self, obj) elif isinstance(obj, set): return list(obj) elif isinstance(obj, str): return unicode(obj)
def default(self, obj): if isinstance(obj, EvaluationSet): returnObject = { 'evaluator':obj.evaluator, 'comment':obj.comment } for evaluation in obj.evaluation_set.all(): returnObject[evaluation.name] = evaluation.factor return returnObject if isinstance(obj, Message): controller = MessageController(obj) userName = '******' if obj.author!=None: userName = obj.author.username returnObject = { 'id':obj.guid, 'author':userName, 'avatar':CollDemUser.objects.get_pic(obj.author), 'header':obj.header, 'text':obj.text, 'is_author':(obj.author == obj.requestUser), 'evaluation':controller.getEvaluation(obj.requestUser), } if hasattr(obj, 'completeDataLength'): returnObject['completeDataLength'] = obj.completeDataLength if hasattr(obj, 'twittermessage'): returnObject['twitter_id'] = obj.twittermessage.msg_id return returnObject return JSONEncoder.default(self, obj)
def default(self, obj): if isinstance(obj, datetime): return obj.isoformat() if isinstance(obj, timedelta): return str(obj) else: return JSONEncoder.default(self, obj)
def default(self, obj): if isinstance(obj,QuerySet): # Queryset实例 # 直接使用Django内置的序列化工具进行序列化 # 但是如果直接返回serialize('json',obj) # 则在simplejson序列化时会被从当成字符串处理 # 则会多出前后的双引号 # 因此这里先获得序列化后的对象 # 然后再用simplejson反序列化一次 # 得到一个标准的字典(dict)对象 return loads(serialize('json',obj)) if isinstance(obj,models.Model): # 如果传入的是单个对象,区别于QuerySet的就是 # Django不支持序列化单个对象 # 因此,首先用单个对象来构造一个只有一个对象的数组 # 这是就可以看做是QuerySet对象 # 然后此时再用Django来进行序列化 # 就如同处理QuerySet一样 # 但是由于序列化QuerySet会被'[]'所包围 # 因此使用string[1:-1]来去除 # 由于序列化QuerySet而带入的'[]' return loads(serialize('json',[obj])[1:-1]) if hasattr(obj, 'isoformat'): #处理日期类型 return obj.isoformat() return JSONEncoder.default(self,obj)
def default(self, obj): if set(['quantize', 'year', 'tm_hour']).intersection(dir(obj)): return str(obj) elif set(['next', 'union']).intersection(dir(obj)): return list(obj) return JSONEncoder.default(self, obj)
def default(self, obj): if isinstance(obj, datetime): return obj.isoformat() return JSONEncoder.default(self, obj) # Error handlers #app.error_handlers[404] = handle_404 #app.error_handlers[500] = handle_500
def default(self, obj): if isinstance(obj, date): return obj.isoformat() try: return JSONEncoder.default(self, obj) except: return str(obj)
def default(self, o): """Encode the provided object.""" if type(o) is QuerySet: return list(o) elif type(o) is Article: return self._encode_article(o) elif type(o) is Category: return self._encode_category(o) elif type(o) is Profile: return self._encode_profile(o) else: return JSONEncoder.default(self, o)
def default(self, obj): if hasattr(obj, '__json__'): return obj.__json__() elif hasattr(obj, 'isoformat'): return obj.isoformat() else: return JSONEncoder.default(self, obj)
def default(self, obj): if isinstance(obj, (list, dict, str, unicode, int, float, bool, type(None))): return JSONEncoder.default(self, obj) if isinstance(obj, datetime.datetime): return str(obj) return "COMPLEXBLOB"
def default(self, obj): if isinstance(obj, Decimal): return round(obj, 2) elif isinstance(obj, datetime) or isinstance(obj, date): date_format = app.config.get('DATE_FORMAT', '%Y-%m-%d') return datetime.strftime(obj, date_format) return JSONEncoder.default(self, obj)
def default(self, obj, **kwargs): from bson import ObjectId if isinstance(obj, ObjectId): return str(obj) else: return JSONEncoder.default(obj, **kwargs)
def default(self, obj): if hasattr(obj, '__json__') and callable(obj.__json__): return obj.__json__() elif isinstance(obj, (datetime.date, datetime.datetime)): return str(obj) elif isinstance(obj, decimal.Decimal): return float(obj) elif is_saobject(obj): props = {} for key in obj.__dict__: if not key.startswith('_sa_'): props[key] = getattr(obj, key) return props elif is_mingobject(obj) and ming is not NotExistingImport: prop_names = [prop.name for prop in ming.odm.mapper(obj).properties if isinstance(prop, ming.odm.property.FieldProperty)] props = {} for key in prop_names: props[key] = getattr(obj, key) return props elif isinstance(obj, ResultProxy): return dict(rows=list(obj), count=obj.rowcount) elif isinstance(obj, RowProxy): return dict(rows=dict(obj), count=1) elif isinstance(obj, ObjectId): return str(obj) elif isinstance(obj, MultiDict): return obj.mixed() elif isinstance(obj, types.GeneratorType): return list(obj) else: return JSONEncoder.default(self, obj)
def default(self, obj): if isinstance(obj, numpy.ndarray): if obj.ndim == 0: return obj + 0 if obj.ndim == 1: return obj.tolist() return list([self.default(row) for row in obj]) return JSONEncoder.default(self, obj)
def default(self, obj): a_list_of_types = (list, dict, str, int, float, bool, type(None)) if PY2: a_list_of_types += (unicode,) if isinstance(obj, a_list_of_types): return JSONEncoder.default(self, obj) return {'_python_object': str(obj)}
def default(self, obj: typing.Any) -> str: if isinstance(obj, bytes): try: return obj.decode("ascii") except: # noqa: E722 return "" if isinstance(obj, (datetime, date)): serial = obj.isoformat() return serial return JSONEncoder.default(self, obj)
def default(self, obj): if hasattr(obj, 'dump'): return obj.dump() elif hasattr(obj, '__json__'): return obj.__json__() elif hasattr(obj, 'to_json'): return obj.to_json() elif hasattr(obj, 'as_json'): return obj.as_json() elif isinstance(obj, Enum): return obj.value return JSONEncoder.default(self, obj)
def default(self, o): if isinstance(o, Block): return { 'block_id': o.block_id, 'block_number': o.block_number, 'previous_block_hash': o.previous_block_hash, 'timestamp': o.timestamp, 'merkle_root': o.merkle_root, 'difficulty_target': o.difficulty_target, 'nonce': o.nonce, 'transactions': o.transactions } if isinstance(o, Transaction): return { 'transaction_id': o.transaction_id, 'tx_outputs': o.tx_outputs, 'tx_inputs': o.tx_inputs } if isinstance(o, TransactionInput): return { 'transaction_input_id': o.transaction_input_id, 'transaction_output_id': o.transaction_output_id, 'unlocking_script': o.unlocking_script, 'amount': o.amount } if isinstance(o, TransactionOutput): return { 'transaction_output_id': o.transaction_output_id, 'amount': o.amount, 'locking_script': o.locking_script, 'sender_address': o.sender_address, 'recipient_address': o.recipient_address } if isinstance(o, TransactionRequest): return { 'sender_address': o.sender_address, 'recipient_address': o.recipient_address, 'amount': o.amount, 'timestamp': o.timestamp, 'tx_input_requests': o.tx_input_requests } if isinstance(o, TxInputRequest): return { 'transaction_output_id': o.transaction_output_id, 'unlocking_script': o.unlocking_script } if isinstance(o, ProofResult): return { 'result_hash_int': o.result_hash_int, 'target_hash_int': o.target_hash_int, 'nonce': o.nonce } return JSONEncoder.default(self, o)
def default(self, obj): if isinstance(obj, ToolMap): return obj._toolMap if isinstance(obj, PatternIndex): return PatternIndexEncoder.default(obj) if isinstance(obj, SiteInfo): return SiteInfoEncoder.default(obj) else: return JSONEncoder.default(obj)
def default(self, obj): if isinstance(obj, datetime.date): return obj.isoformat() elif isinstance(obj, np.ndarray) and obj.ndim == 1: lobj = obj.tolist() if len(lobj) == 1: return lobj[0] else: return lobj return JSONEncoder.default(self, obj)
def default(self, obj): """ """ if isinstance(obj, (np.int_, np.intc, np.intp, np.int8, np.int16, np.int32, np.int64, np.uint8, np.uint16, np.uint32, np.uint64)): return int(obj) elif isinstance(obj, (np.float_, np.float16, np.float32, np.float64)): return float(obj) elif isinstance(obj, (np.ndarray, )): return obj.tolist() return JSONEncoder.default(self, obj)
def default(self, obj): # pylint: disable=E0202 """Encode based on object type.""" if isinstance(obj, Patient): return self.encode_patient(obj) elif isinstance(obj, Visit): return self.encode_visit(obj) elif isinstance(obj, Event): return self.encode_event(obj) elif isinstance(obj, Entity): return self.encode_entity(obj) else: return JSONEncoder.default(self, obj)
def default(self, o): if isinstance(o, Block): return { 'block_id': o.block_id, 'block_number': o.block_number, 'version': o.version, 'previous_block_hash': o.previous_block_hash, 'timestamp': o.timestamp, 'merkle_root': o.merkle_root, 'difficulty_target': o.difficulty_target, 'nonce': o.nonce, 'transactions': o.transactions } if isinstance(o, Transaction): return { 'transaction_id': o.transaction_id, 'block_id': o.block_id, 'locktime': o.locktime, 'transaction_inputs': o.transaction_inputs, 'transaction_outputs': o.transaction_outputs } if isinstance(o, TransactionOutput): return { 'transaction_output_id': o.transaction_output_id, 'transaction_id': o.transaction_id, 'amount': o.amount, 'locking_script': o.locking_script, 'sender_address': o.sender_address, 'recipient_address': o.recipient_address } if isinstance(o, TransactionInput): return { 'transaction_input_id': o.transaction_input_id, 'transaction_id': o.transaction_id, 'transaction_output_id': o.transaction_output_id, 'unlocking_script': o.unlocking_script, } if isinstance(o, ProofResult): return { 'result_hash_int': o.result_hash_int, 'target_hash_int': o.target_hash_int, 'nonce': o.nonce } if isinstance(o, PeerNode): return { 'peer_node_id': o.peer_node_id, 'url': o.url, 'address': o.address } if isinstance(o, Decimal): return float(o) return JSONEncoder.default(self, o)
def default(self, obj): """ WTF, why doesn't JSONEncoder already try str(obj) ?? """ try: return obj.serializeable() except AttributeError: pass try: return JSONEncoder.default(self, obj) except TypeError: return str(obj)
def default(self, book): if isinstance(book, Book): return { "isbn": book.isbn, "book_title": book.book_title, "book_author": book.book_author, "publisher": book.publisher, "year_of_publication": book.year_of_publication, "image_url_s": book.image_url_s, "image_url_m": book.image_url_m, "image_url_l": book.image_url_l } return JSONEncoder.default(self, book)
def default(self, obj): try: if isinstance(obj, datetime): return obj.strftime("%Y-%m-%d %H:%M:%S") elif isinstance(obj, date): return obj.strftime("%Y-%m-%d") iterable = iter(obj) except TypeError as e: logger.warn(e) else: return list(iterable) return JSONEncoder.default(self, obj)
def default(self, obj): if obj is not None: from pjdata.aux.uuid import UUID if isinstance(obj, np.ndarray): return str(obj) elif isinstance(obj, UUID): return obj.id elif not isinstance(obj, (list, set, str, int, float, bytearray, bool)): return obj.jsonable return JSONEncoder.default(self, obj)
def default(self, obj: Any) -> Any: iterate = getattr(obj, "__iter__", None) if iterate is not None: # We have an Iterable if hasattr(obj, "__getitem__"): # We have a Mapping return dict(obj) return list(iterate()) if isinstance(obj, DateTime): return dateAsRFC3339Text(obj) return BaseJSONEncoder.default(self, obj)
def default(self, obj): """default.""" if isinstance(obj, (datetime.datetime, datetime.date)): return obj.isoformat() elif isinstance( obj, (list, dict, str, unicode, int, float, bool, type, type(None))): return JSONEncoder.default(self, obj) logging.warning( "Unable to find matching encoder for type %s. Using pickle", str(type(obj)), ) return {"_python_object": pickle.dumps(obj)}
def default(self, o): if isinstance(o, Site): return { '_type': 'site', 'name': o.name, 'servers': json.dumps(o.servers), 'port': o.port, 'ssl': o.ssl, 'log_level': o.log_level, 'username': '' if not o.username else o.username, 'password': '' if not o.password else o.password, } return JSONEncoder.default(self, o)
def default(self, obj): if isinstance(obj, NestedField): return dict([(k if v.name is None else v.name, self.default(v)) for k, v in obj.items()]) elif isinstance(obj, ListField): return [self.default(v) for v in obj.value] elif isinstance(obj, DateField): return obj.json_encode() elif isinstance(obj, BaseField): return obj.value else: return JSONEncoder.default( self, obj) # super(MyEncoder, self).default(obj)
def default(self, obj): if isinstance(obj, TimedPatternSortedList): return list(obj) if isinstance(obj, TimedPattern): return {'time': obj.time, "pattern": obj.pattern} if isinstance(obj, datetime): return obj.iso_format() if isinstance(obj, re.Pattern): return obj.pattern return JSONEncoder.default(obj)
def default(self, obj): if isinstance(obj, np.ndarray): return obj.tolist() elif isinstance(obj, (np.int64, np.int32)): return int(obj) elif isinstance(obj, (np.float64, np.float32)): return float(obj) elif isinstance(obj, PosixPath): return str(obj) try: return JSONEncoder.default(self, obj) except TypeError: return None
def default(self, message): if isinstance(message, Message): json_res = { "title": message.title, "text": message.text, "author": message.author, "date": str(message.date) } return json_res else: # call base class implementation which takes care of # raising exceptions for unsupported types return JSONEncoder.default(self, message)
def default(self, o): """ Encode the provided object. """ if type(o) is QuerySet: return list(o) elif type(o) is Article: return self._encode_article(o) elif type(o) is Category: return self._encode_category(o) elif type(o) is Profile: return self._encode_profile(o) else: return JSONEncoder.default(self, o)
def default(self, obj): if isinstance(obj, datetime): return { '__type__': 'datetime', 'year': obj.year, 'month': obj.month, 'day': obj.day, 'hour': obj.hour, 'minute': obj.minute, 'second': obj.second, 'microsecond': obj.microsecond, } else: return JSONEncoder.default(self, obj)
def default(self, o): if isinstance(o, Decimal): return str(o) elif isinstance(o, datetime): return o.isoformat() elif isinstance(o, date): return o.isoformat() elif isinstance(o, time): return o.isoformat() elif isinstance(o, MSG): return o.gettext() elif isinstance(o, XMLParser): return stream_to_str_as_html(o) return JSONEncoder.default(self, o)
def default(self, ride): if isinstance(ride, Ride): json = { "driver_name": ride.get_driver().get_username(), "passengers": ride.get_passengers_names(), "available_seats": ride.get_available_seats(), "source": ride.get_source(), "departure_time": ride.get_departure_time() } return json else: # call base class implementation which takes care of # raising exceptions for unsupported types return JSONEncoder.default(self, ride)
def default(self, o): if isinstance(o, BaseModel): return o.dict() if isinstance(o, Decimal): return str(o) if isinstance(o, (datetime, date)): return o.isoformat() if is_dataclass(o): return asdict(o) if isinstance(o, Enum): return o.value if isinstance(o, Exception): return str(o) return JSONEncoder.default(self, o)
def default(self, o: Any) -> JSONEncoderTypes: """Convert OkResponse & ErrResponse to dictionaries.""" if isinstance(o, OkResponse): return o.__dict__ if isinstance(o, ErrResponse): return o.__dict__ # NOTE: Casting as built-in JSONEncoder's default method # incorrectly has signature of Any when the documentation # for the method states it must return either a type that is # serializable to JSON by the default rules, or raises a # TypeError. return cast(JSONEncoderTypes, JSONEncoder.default(self, o))
def default(self, obj): if isinstance(obj, datetime): return obj.strftime('%Y-%m-%d %H:%M:%S') elif isinstance(obj, date): return obj.strftime('%Y-%m-%d') elif isinstance(obj, decimal.Decimal): return float(obj) elif isinstance(obj, time): return obj.strftime('%H:%M:%S') elif isinstance(obj, timedelta): sec = int(obj.total_seconds()) return '{H:02d}:{M:02d}:{S:02d}'.format(H=int(sec / 3600), M=int(sec / 24 % 60), S=sec % 60) else: return JSONEncoder.default(self, obj)
def default(self, obj): if isinstance(obj, Output): out_dict = dict() out_dict['classifier'] = obj.classifier out_dict['version'] = obj.version out_dict['labels'] = obj.labels out_dict['scores'] = obj.scores out_dict['probas'] = obj.probas out_dict['paths'] = obj.paths out_dict['thresholds'] = obj.thresholds out_dict['positivenesses'] = obj.positivenesses out_dict['negativenesses'] = obj.negativenesses return out_dict return JSONEncoder.default(self, obj)
def default(self, o): if hasattr(o, '__json_default__'): return o.__json_default__() elif isinstance(o, (datetime, date, time)): return o.strftime('%b %d %Y %H:%M:%S') try: iterable = iter(o) except TypeError: pass else: return list(iterable) return JSONEncoder.default(self, o)
def default(self, obj): if isinstance(obj, datetime): return { "__type__": "datetime", "year": obj.year, "month": obj.month, "day": obj.day, "hour": obj.hour, "minute": obj.minute, "second": obj.second, "microsecond": obj.microsecond, } else: return JSONEncoder.default(self, obj)
def default(self, obj): try: if isinstance(obj, datetime.date): return obj.isoformat().replace('T', ' ') elif isinstance(obj, datetime.datetime): return obj.isoformat().replace('T', " ") elif isinstance(obj, decimal.Decimal): return str(obj) iterable = iter(obj) except TypeError: pass else: return list(iterable) return JSONEncoder.default(self, obj)