Python 使用 docopt 解析json参数文件
1. 背景
在深度学习的任务中,通常需要比较复杂的参数以及输入输出配置,比如需要不同的训练data,不同的模型,写入不同的log文件,输出到不同的文件夹以免混淆输出
常用的parser.add()方法非常占用代码空间,而且输入输出配置无法通过文件更改,只能通过命令行参数改变。
docopt 库提供了一个非常优雅的命令行解析工具,这边只介绍其中解析文件参数
2. 安装
pip install docopt
import docopt
import json
3. 使用
docopt 由两部分组成,第一部分是解析部分,通过“”“ -”“”(一段类似注释的双引号表示),这一部分必不可少。
"""
Usage: train <json_file>
"""
上面解析部分的指令很简单,输入应为:
python test.py config.json
第二部分是main 函数:
if __name__ == "__main__":
args = docopt.docopt(__doc__)
args = json.load(open(args["<json_file>"]))
print('==>Params')
for key in args.keys():
print('\t{}:{}\n'.format(key,args[key]))
train(args)
我将 config.json 设置为:
{
"dataset": "human_science",
"length": 1000,
"model": "CNN",
"log_dir": "./logs/",
"output_dir": "./output/",
"output_prefix": "human_science_CNN",
"lr":0.01
}
命令行的输出应为:

成功将参数传入train()函数
Python 使用 docopt 解析json参数文件的更多相关文章
- python接口自动化-传 json 参数
一.post请求有两种方法传json参数: 1.传json参数(自动转 json ) 2.传data参数(需 json 转换) 代码参考: payload = { "Jodie": ...
- 让IIS支持解析.json格式文件
原文出处链接及本声明. 原文链接:https://blog.csdn.net/jumtre/article/details/72630730 1.IIS内点击网站进入网站主页设置界面: 2.双击MIM ...
- JSON参数解析工具类
/// <summary> /// 解析JSON参数 /// </summary> public class JSONParser { JObject jObj = null; ...
- Spring boot中自定义Json参数解析器
转载请注明出处... 一.介绍 用过springMVC/spring boot的都清楚,在controller层接受参数,常用的都是两种接受方式,如下 /** * 请求路径 http://127.0. ...
- python解析json文件之简介
一.JSON简介 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于JavaScript(Standard ECMA-262 3rd Edition ...
- python脚本解析json文件
python脚本解析json文件 没写完.但是有效果.初次尝试,写的比较不简洁... 比较烦的地方在于: 1,中文编码: pSpecs.decode('raw_unicode_escape') 2,花 ...
- python解析jSON文件
一.jSON文件 http://baike.baidu.com/link?url=wYeeLnhpXX-Tt8AoBRSNPh2P7Z2YHyK2tdD1tbBOQMfJIpA-YNHMOg2ZN6a ...
- python 解析json loads dumps
认识 引用模块 重要函数 案例 排序 缩进参数 压缩 参考 认识 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于JavaScript(Standa ...
- python3.4学习笔记(二十六) Python 输出json到文件,让json.dumps输出中文 实例代码
python3.4学习笔记(二十六) Python 输出json到文件,让json.dumps输出中文 实例代码 python的json.dumps方法默认会输出成这种格式"\u535a\u ...
随机推荐
- Maven工具-简介
Maven工具-简介 定义 ①maven是一款服务于java平台的自动化构建工具 make→Ant→maven→Gradle ②构建 [1]概念:以"java源文件"." ...
- poj3660(floyd最短路)
题目链接:https://vjudge.net/problem/POJ-3660 题意:给出一个有向图,n个结点,每个结点的权值为[1,n]中的一个独特数字,m条边,如果存在边a->b,说明a的 ...
- D1. Docker: win7 环境下安装 Docker
[下载与安装] win7.win8 等需要利用 docker toolbox 来安装,国内可以使用阿里云的镜像来下载,下载地址:http://mirrors.aliyun.com/docker-too ...
- Spring之22:DefaultListableBeanFactory
1. DefaultListableBeanFactory的作用: 默认实现了ListableBeanFactory和BeanDefinitionRegistry接口,基于bean definitio ...
- lnmp 是不是该吐吐槽
lnmp 提供提供了便捷 , 并且手也伸的挺长的,它已不仅仅是个服务器环境那么简单 作为服务器继承环境来讲,可能每个人的认知程度不一,总之用了它需要服从它的规则 但从个人感觉上,其埋的坑还是让人不适, ...
- Ribbon【自定义客户端】
Ribbon的加载策略是懒加载,即第一次请求的时候才加载对应上下文,正是这个原因,很多时候第一次调用显得很慢,甚至会超时,所以,可以通过指定ribbon具体服务名称来开启饿加载,即在工程启动的时候,加 ...
- Java调用SqlLoader将大文本导入数据库
Java调用SqlLoader将大文本导入数据库 业务场景:将一千万条数据,大约500M的文本文档的数据导入到数据库 分析:通过Java的IO流解析txt文本文档,拼接动态sql实现insert入库, ...
- IdentityServer4 手动验签及日志记录
IdentityServer4的基础知识和使用方式网上有很多特别优秀的文章,如果有对其不了解的推荐阅读一下下面的两篇文章 http://www.ruanyifeng.com/blog/2014/05/ ...
- (转)高效线程池之无锁化实现(Linux C)
本文链接:https://blog.csdn.net/xhjcehust/article/details/45844901 笔者之前照着通用写法练手写过一个小的线程池版本,最近几天复习了一下,发现大多 ...
- 2019杭电多校三 C. Yukikaze and Demons (点分治)
大意: 给定树, 每个点有一个十进制数位, 求有多少条路径组成的十进制数被$k$整除. 点分治, 可以参考CF715C, 转化为求$10^a x+b\equiv 0(mod\space k)$的$x$ ...