js¶
json IO utility module.
useful method:
-
dataIO.js.
load
(abspath, default={}, enable_verbose=True)[source]¶ Load Json from file. If file are not exists, returns
default
.Parameters: - abspath (string) – file path. use absolute path as much as you can.
extension has to be
.json
or.gz
(for compressed Json). - default – default
dict()
, ifabspath
not exists, return the default Python object instead. - enable_verbose (boolean) – default
True
, help-message-display trigger.
Usage:
>>> from dataIO import js >>> js.load("test.json") # if you have a json file Load from 'test.json' ... Complete! Elapse 0.000432 sec. {'a': 1, 'b': 2}
中文文档
从Json文件中读取数据
Parameters: - abspath (
字符串
) – Json文件绝对路径, 扩展名需为.json
或.gz
, 其中.gz
是被压缩后的Json文件 - default – 默认
dict()
, 如果文件路径不存在, 则会返回指定的默认值 - enable_verbose (
布尔值
) – 默认True
, 信息提示的开关, 批处理时建议关闭
- abspath (string) – file path. use absolute path as much as you can.
extension has to be
-
dataIO.js.
dump
(data, abspath, indent_format=False, float_precision=None, overwrite=False, enable_verbose=True)[source]¶ Dump Json serializable object to file. Provides multiple choice to customize the behavior.
Parameters: - data (dict or list) – Serializable python object.
- abspath (string) –
save as
path, file extension has to be.json
or.gz
(for compressed Json) - indent_format (boolean) – default
False
, IfTrue
, then dump to human readable format, but it’s slower, the file is larger - float_precision (integer) – default
None
, limit flotas to N-decimal points. - overwrite (boolean) – default
False
, IfTrue
, when you dump to existing file, it silently overwrite it. IfFalse
, an alert message is shown. Default settingFalse
is to prevent overwrite file by mistake. - enable_verbose (boolean) – default True, help-message-display trigger.
Usage:
>>> from dataIO import js >>> data = {"a": 1, "b": 2} >>> dump(data, "test.json", overwrite=True) Dumping to 'test.json'... Complete! Elapse 0.002432 sec
中文文档
将Python中可被序列化的”字典”, “列表”以及他们的组合, 按照Json的编码方式写入文件 文件
参数列表
Parameters: - js (
字典
或列表
) – 可Json化的Python对象 - abspath (
字符串
) – Json文件绝对路径, 扩展名需为.json
或.gz
, 其中.gz
是被压缩后的Json文件 - indent_format (“布尔值”) – 默认
False
, 当为True
时, Json编码时会对Key进行 排序, 并进行缩进排版。但是这样写入速度较慢, 文件体积也更大。 - overwrite (“布尔值”) – 默认
False
, 当为``True``时, 如果写入路径已经存在, 则会 自动覆盖原文件。而为``False``时, 则会打印警告文件, 防止误操作覆盖源文件。 - float_precision (“整数”) – 默认
None
, 当为任意整数时, 则会保留小数点后N位 - enable_verbose (
布尔值
) – 默认True
, 信息提示的开关, 批处理时建议关闭
-
dataIO.js.
safe_dump
(data, abspath, indent_format=False, float_precision=None, enable_verbose=True)[source]¶ A stable version of
dump()
, this method will silently overwrite existing file.There’s a issue with
dump()
: If your program is interrupted while writing, you got an incomplete file, and you also lose the original file. So this method write json to a temporary file first, then rename to what you expect, and silently overwrite old one. This way can guarantee atomic write.中文文档
在对文件进行写入时, 如果程序中断, 则会留下一个不完整的文件。如果使用了覆盖式 写入, 则我们即没有得到新文件, 同时也丢失了原文件。所以为了保证写操作的原子性 (要么全部完成, 要么全部都不完成), 更好的方法是: 首先将文件写入一个临时文件中, 完成后再讲文件重命名, 覆盖旧文件。这样即使中途程序被中断, 也仅仅是留下了一个 未完成的临时文件而已, 不会影响原文件。
-
dataIO.js.
pprint
(data)[source]¶ Print Json in pretty human readable format.
There’s a standard module pprint, can pretty print python dict and list. But it doesn’t support sorted key, and indent doesn’t looks good.
Usage:
>>> from dataIO import js >>> js.pprint({"a": 1, "b": 2}) { "a": 1, "b": 2 }
中文文档
以人类可读的方式打印可Json化的Python对象。