Skip to content
Open
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 5 additions & 3 deletions param/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -1567,14 +1567,16 @@ def _validate(self, val):
def serialize(cls, value):
if value is None:
return 'null'
return value.to_dict('records')
import json
return json.loads(value.to_json(orient='table'))

@classmethod
def deserialize(cls, value):
if value == 'null':
return None
from pandas import DataFrame as pdDFrame
return pdDFrame(value)
import json
import pandas as pd
return pd.read_json(json.dumps(value), orient='table')


class Series(ClassSelector):
Expand Down
5 changes: 4 additions & 1 deletion tests/API1/testjsonserialization.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ class TestSet(param.Parameterized):
__test__ = False

numpy_params = ['r','y']
pandas_params = ['s','t','u','z']
pandas_params = ['s','t','u','z','ab']
conditionally_unsafe = ['f', 'o']

a = param.Integer(default=5, doc='Example doc', bounds=(2,30), inclusive_bounds=(True, False))
Expand Down Expand Up @@ -73,6 +73,9 @@ class TestSet(param.Parameterized):
y = None if np is None else param.Array(default=None)
z = None if pd is None else param.DataFrame(default=None, allow_None=True)
aa = param.Tuple(default=None, allow_None=True, length=1)
ab = None if pd is None else param.DataFrame(default=pd.DataFrame(
{'A':[datetime.datetime(year,1,1) for year in range(2020,2023)], 'B':[1.1,2.2,3.3]}),
columns=(1,4), rows=(2,5))


test = TestSet(a=29)
Expand Down