【发布时间】:2016-02-26 21:54:15
【问题描述】:
我有一段 Python 代码可以提取命令行参数,例如:
import argparse
if __name__ == "__main__": # myScript.py
parser = argparse.ArgumentParser()
parser.add_argument("-i", "--int", help="Int with default", type=int, default=20)
parser.add_argument("-swd", "--strwdef", help="string with default", type=str, default="DEFAULTSTRING")
parser.add_argument("-snd", "--strnodef", help="string without default", type=str)
parser.add_argument("-f", "--flag", help="binary flag", action='store_true')
args = parser.parse_args()
i = args.i
swd = args.swd
snd = args.snd
f = args.flag
所以这适用于这样的命令:
python myScript.py -swd SomeString --int 35 -f
我想改为从 JSON 文件中读取这些参数。问题:
-
python 2.7中是否有内置功能来设置它,而不是编写我自己的json.load()解析结果的自定义代码来处理参数类型、默认值等? - 如果有,上述示例的 JSON 文件的正确格式是什么,以及填充变量
i、swd等的方式?
谢谢!
【问题讨论】:
-
对于 json 验证,您可以查看 Cerberus docs.python-cerberus.org/en/latest
-
JSON 是命令行值还是解析器参数定义?
-
@hpaulj 命令行值
标签: python json python-2.7 argparse