The OpenDP logger makes it possible to serialize and deserialize OpenDP Measurements/Transformations to/from JSON.
Enable logging (globally) before you build your transformations and/or measurements:
from opendp_logging import enable_logging
enable_logging()
Once this is enabled, Transformations/Measurements have a method .to_json()
that returns a JSON string.
Deserialize a JSON string into a Transformation/Measurement by invoking opendp_logger.make_load_json
.
from opendp_logger import enable_logging
from opendp.mod import enable_features
enable_logging()
enable_features("contrib")
import opendp.transformations as trans
preprocessor = (
# load data into a dataframe where columns are of type Vec<str>
trans.make_split_dataframe(separator=",", col_names=["hello", "world"])
>>
# select a column of the dataframe
trans.make_select_column(key="income", TOA=str)
)
# serialize the chain to json
json_obj = preprocessor.to_json()
print("json:", json_obj)
from opendp_logger import make_load_json
# reconstruct the obj from the json string
test = make_load_json(json_obj)