ENH: json default_handler param #5138
Merged
Add this suggestion to a batch that can be applied as a single commit. This suggestion is invalid because no changes were made to the code. Suggestions cannot be applied while the pull request is closed. Suggestions cannot be applied while viewing a subset of changes. Only one suggestion per line can be applied in a batch. Add this suggestion to a batch that can be applied as a single commit. Applying suggestions on deleted lines is not supported. You must change the existing code in this line in order to create a valid suggestion. Outdated suggestions cannot be applied. This suggestion has been applied or marked resolved. Suggestions cannot be applied from pending reviews. Suggestions cannot be applied on multi-line comments. Suggestions cannot be applied while the pull request is queued to merge. Suggestion cannot be applied right now. Please check back later.
This adds a
default_handlerparam toto_json, which if passed must be a callable which takes one argument (the object to convert) and returns a serialisable object. Thedefault_handlerwill only be used if an object cannot otherwise be serialised.Note right now the JSON serialiser has direct handling for:
bool,int,long,float.dict,list,tupleandset.datetimeanddate.None.NaNandNaTIndex,Series,DataFrameandTimestampIf an object is not recognised the fallback behaviour with this PR would be:
toDictmethod is defined by the unrecognised object thatwill be called and its returned
dictwill be JSON serialised.default_handlerhas been passed toto_jsonthat willbe called to convert the object.
dictbyiterating over its attributes.