管理json文件中的参数

argson的Python项目详细描述


阿尔格森

来自json的参数

将参数从json配置文件部署到python程序中

安装

pip install argson

python3 setup.py install

当前不支持Python2。应该适用于所有Python3版本。使用python 3.7.1进行测试

基本用法

config/arguments.json

[
  {
    "flags": ["--string-to-print"]
  }
]

config/defaults.json

{
  "string_to_print": "foo"
}

main.py

import argson

arguments = argson.parse_file_and_arguments()
print(arguments.string_to_print)

$ python main.py # -> foo

$ python main.py --string bar # -> bar

文档

argson.parse_file_和_参数

用于自动分析参数文件、自文件和默认文件,生成带有参数文件标志的对象

参数

ArgumentTypeDefaultDescription
config_filestrconfig/arguments.jsonwhere arguments are read
self_filestrconfig/self.jsonconfigurations for argparse.ArgumentParser
defaults_filestrconfig/defaults.jsondefault values for arguments
working_dirstros.getcwd()where the program will look for files to load
no_builtinsboolFalsedisables built-in flags
verboseboolFalsedisables error messages

返回:具有来自config_file标志的属性的对象

argson.parse_config_文件

当需要操作ArgumentParser的实例和要解析的剩余参数数组时使用

参数:与argson.parse_file_and_arguments

相同

返回:tuple[argumentparser,list[string]]。ArgumentParser的实例和要分析的其余参数的列表。如果像argument_parser, remaining_args = argson.parse_config_file()那样分配返回值,那么可以像arguments = argument_parser.parse_args(remaining_args)中那样解析剩余的参数,这基本上就是parse_file_and_arguments所做的。

config_文件

一个json文件,包含至少有一个名为flags的键的对象数组。这些是在以--开头的“连字符大小写”中调用程序时使用的标志,如示例中所示。可以传递额外的键来表示用--help调用程序时将显示的标志行为或帮助字符串。这些属性可以传递给ArgumentParser.add_argument

self_文件

包含主ArgumentParser实例信息的JSON文件。这些属性与argparse.ArgumentParser支持的属性相同

defaults\u文件

具有snake_case中标志的默认值的json文件。也就是说,如果参数具有标志string-to-parse,则默认值必须读取为string_to_parse。请参阅上面的示例。

为什么要分离配置文件和默认文件?

最好是分离这些文件,这样我们就可以通过编程选择默认的源代码,为标志保持相同的配置。当部署在开发环境和生产环境中运行时具有不同默认值的脚本时,这有时是必要的。

贡献

  • 分叉并克隆此回购协议
  • 安装pipenv
  • pipenv install
  • 编码为没有明天
  • 提交PR
  • 是吗??
  • 我们一起获利

公开征求意见!

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java需要64位jdk 1.5 for windows   eclipse运算符+对于参数类型java是未定义的。双,爪哇。双人   未下载文件扩展名为的java文件   java不支持带有POST的媒体类型   从动态创建的多个EditText读取文本时发生java错误   java无法为同一xpath单击多个按钮   如何在Java中动态格式化字符串   java Android Clear Middle活动   多线程Java内存模型volatile和x86   git在Java中通过Jgit忽略文件或文件夹   java“决策无法区分输入的备选方案1、2…”   子类的javajpa继承   java需要弄清楚如何操作mutator来弄清楚一个类,教授说,我对如何操作感到困惑   java如何使用JDBC将数据从文件复制到PostgreSQL?