代码理解json.dumps(config, sort_keys=True, indent=4, separators=(',', ':')
来源:互联网 发布:mysql 如何使用 编辑:程序博客网 时间:2024/06/05 15:57
最近看代码,又有看不懂的地方了,在此mark一下: 总体
编码:把一个Python对象编码转换成Json字符串 json.dumps( )
解码:把Json格式字符串解码转换成Python对象 json.loads( )
话不多说,看代码块:
加载json文件:
def load_json(path): import json ''' 读取配置文件,并过滤掉以//开头的注释 ''' lines=[] #将内容读入lines这个list with open(path) as f: for row in f.readlines(): if row.strip().startswith("//"): continue lines.append(row) return json.loads("\n".join(lines))
#输出lines的结构发现如下:['\n', '{\n', '"dataset":{\n', ' "train": {"type": "mnist", "data_set": "train", "layout_x": "tensor"},\n', ' "test": {"type": "mnist", "data_set": "test", "layout_x": "tensor"}\n', '},\n'
line的每一行都包含了换行符\n,原文本的每一行在lines这个列表中为单引号包含的每一行内容,每个元素间用逗号分隔。
我们来说一下Python中string.join()这个函数
一、函数说明
join(): 连接字符串数组。将字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串
1、join( )函数
语法: ‘sep’.join(seq)
参数说明
sep:分隔符。可以为空
seq:要连接的元素序列、字符串、元组、字典
上面的语法即:以sep作为分隔符,将seq所有的元素合并成一个新的字符串
返回值:返回一个以分隔符sep连接各个元素后生成的字符串
参考网址:https://www.cnblogs.com/jsplyy/p/5634640.html
参考网址:https://www.cnblogs.com/SkySoot/archive/2012/04/17/2453010.html
那么(“\n”.join(lines))后的输出的形式为。中间多了每个元素之间多了一个换行,其实这里“\n”和“”都可以,因为在json.loads(“\n”.join(lines)) 和json.loads(“”.join(lines)) 这两个是等效的。
{"dataset":{ "train": {"type": "mnist", "data_set": "train", "layout_x": "tensor"}, "test": {"type": "mnist", "data_set": "test", "layout_x": "tensor"}},"train":{ "keep_model_in_mem":0, "random_state":0, "data_cache":{ "cache_in_disk":{ "default":1 }, "keep_in_mem":{ "default":0 }, "cache_dir":"/home/zhaopanpan/gcForest-master/result/mnist/fg-tree500-depth100-3folds/datas" } }}
具体的代码调用如下:
if __name__ == '__main__': args = parse_args() # In this case ,refer to # models/mnist/gcforest/fg-tree500-depth100-3folds.json config = load_json(args.model) update_default_level(logging.DEBUG) if args.log_dir is not None: update_default_logging_dir(args.log_dir) from gcforest.fgnet import FGNet, FGTrainConfig from gcforest.exp_utils import prec_ets, prec_rf, prec_log, prec_xgb, concat_datas from gcforest.datasets import get_dataset # 这个 LOGGER = get_logger("tools.train_fg")中tools.train_fg是由gcforest.utils.log_utils中的get_logger创建 LOGGER = get_logger("tools.train_fg") LOGGER.info("tools.train_fg") # json.dumps将 Python 对象编码成 JSON 字符串 LOGGER.info("\n" + json.dumps(config, sort_keys=True, indent=4, separators=(',', ':'))) # indent是缩进的意思
相关知识点:
- Skipkeys:默认值是False,如果dict的keys内的数据不是python的基本类型(str,unicode,int,long,float,bool,None),设置为False时,就会报TypeError的错误。此时设置成True,则会跳过这类key
- ensure_ascii:默认值True,如果dict内含有non-ASCII的字符,则会类似\uXXXX的显示数据,设置成False后,就能正常显示
- indent:应该是一个非负的整型,如果是0,或者为空,则一行显示数据,否则会换行且按照indent的数量显示前面的空白,这样打印出来的json数据也叫pretty-printed json
- separators:分隔符,实际上是(item_separator, dict_separator)的一个元组,默认的就是(‘,’,’:’);这表示dictionary内keys之间用“,”隔开,而KEY和value之间用“:”隔开。
- encoding:默认是UTF-8,设置json数据的编码方式。
- sort_keys:将数据根据keys的值进行排序。
用于排错的网址:https://www.tuicool.com/articles/YBnE3q
- 代码理解json.dumps(config, sort_keys=True, indent=4, separators=(',', ':')
- style="text-indent
- with tf.Session(config=tf.ConfigProto(log_device_placement=True))
- 2.Struts的<action unknown="true">:struts-config.xml
- c#代码获取web.config配置文件里面设置的 <compilation debug="true"节点的debug值
- Application.EnableEvents =false(true)的理解
- Hibernate中“inverse=true”的理解
- Hibernate中inverse="true"的理解
- Hibernate中inverse="true"的理解
- hiernate中inverse=true 的理解
- Hibernate中inverse="true"的理解
- Hibernate中inverse="true"的理解
- Hibernate中inverse="true"的理解
- Hibernate中inverse="true"的理解
- -locale en_US -define=CONFIG::debug,false -define+=CONFIG::release,true
- 合并注解配置<context:component-scan base-package="com.**.controller" annotation-config="true"/>
- 配置<aop:config proxy-target-class="true">时遇到的错误
- python json loads dumps
- 虚拟现实(VR)技术与伦理
- 线程1
- 面试记录
- 算法与数据结构基础(三)插入排序、选择排序和冒泡排序的区别
- 实现基于静态数组的顺序表的基本操作
- 代码理解json.dumps(config, sort_keys=True, indent=4, separators=(',', ':')
- 互联网产品常用英语单词
- python正则表达式(二)
- Spring RMI java.rmi.NoSuchObjectException: no such object in table
- 用类描述计算机中CPU的速度和硬盘的容量。要求Java的应用程序有4个类,名字分别是PC、CPU、HardDisk和Test,其中Test是主类。
- SpringMVC基础(一)
- 线程2
- webmagic总结
- rethinkdb踩坑记录