提供一个函数和类来实现自定义JSON编码器,用于序列化BokehJS对象。
主接口由 serialize_json 函数,使用自定义 BokehJSONEncoder 生成JSON输出。
serialize_json
BokehJSONEncoder
通常,此模块中的函数按以下方式转换值:
Datetime值(Python、Pandas、NumPy)从epoch开始转换为浮点毫秒。
TimeDelta值转换为绝对浮点毫秒。
RelativeDelta值将转换为字典。
十进制值转换为浮点。
通过此接口传递的序列(Pandas系列、NumPy数组、python序列)将转换为列表。但是请注意,Bokeh文档中的数据源中的数组在其他地方被转换,默认情况下使用二进制编码格式。
博克 Model 实例通常在整个Bokeh文档的上下文中序列化。通过此接口传递的模型将转换为引用。
Model
HasProps (不是Bokeh模型)被转换为键/值dict或它们的所有属性和值。
HasProps
Color 实例被转换为CSS颜色值。
Color
返回对象的序列化JSON表示,适合发送到BokehJS。
此函数通常用于以BokehJS期望的方式序列化单个python对象。特别是,许多datetime值会自动规范化为预期的格式。也可以传递一些Bokeh对象,但请注意,Bokeh模型通常在整个Bokeh文档的上下文中正确序列化。
生成的JSON始终具有排序键。默认情况下。除非请求漂亮的输出或缩进,否则输出尽可能紧凑。
obj (obj) -- 要序列化为JSON格式的对象
pretty (bool, optional) -- 是否生成美化输出。如果 True ,在分隔符后添加空格,并应用缩进和换行。(默认值:False)也可以使用环境变量启用漂亮的输出 BOKEH_PRETTY ,如果已设置,则重写此参数。
True
BOKEH_PRETTY
indent (int or None, optional) -- 生成的JSON输出中要使用的缩进量。如果 None 然后不使用缩进,除非启用漂亮输出,在这种情况下使用两个空格。(默认值:无)
None
任何其他关键字参数都传递给 json.dumps ,但某些是内部计算的,并且不能重写:
json.dumps
allow_nan
缩进
分离器
sort_keys
实际案例
>>> data = dict(b=np.datetime64('2017-01-01'), a = np.arange(3)) >>>print(serialize_json(data)) {"a":[0,1,2],"b":1483228800000.0} >>> print(serialize_json(data, pretty=True)) { "a": [ 0, 1, 2 ], "b": 1483228800000.0 }
风俗习惯 json.JSONEncoder 根据BokehJS协议对对象进行编码的子类。
json.JSONEncoder
default
所需的 default 方法 JSONEncoder 子类。
JSONEncoder
obj (obj) -- 要编码的对象。此方法中未特别处理的任何内容都将传递给默认的系统JSON编码器。
transform_python_types
处理特殊标量,如(Python、NumPy或Pandas)datetime或十进制值。