python一次删除多个键值对_Python单击:多个键值对参数
我将Python Click库用于我的命令行界面.我想有一个需要多个键值对的命令.我在api上很灵活.例如
my_cli my_command FOO=1 BAR=2
或者可能
my_cli my_command FOO 1 BAR 2
甚至
my_cli my_command {"FOO": 1, "BAR": 2}
有没有简单的方法可以通过Click做到这一点?
解决方法:
最简单的解决方案基本上与您想要使用这样的API的常规Python函数相同.
采取单个参数,将可变长度的参数流分组为元组.然后,您要做什么取决于您是否需要单独的参数:
>>> def func(*args):
... d = dict(zip(args[::2], args[1::2]))
... print(d)
>>> func('FOO', 1, 'BAR', 2)
{'FOO': 1, 'BAR': 2}
…或组合的key:value参数:
>>> def func(*args):
... d = dict(arg.split(':') for arg in args)
... print(d)
这个代码有点笨拙,因为在Python中,参数不仅是空格分隔的单词,还请允许我使用:
>>> func('FOO:1', 'BAR:2')
{'FOO': 1, 'BAR': 2}
第一个的等效点击如下所示:
@click.command()
@click.argument('args', nargs=-1)
def my_command(args):
d = dict(zip(args[::2], args[1::2]))
click.echo(d)
(显然,您可以像其他任何命令一样,将其粘贴在click.group等中.)
现在:
$./clicky.py FOO 1 BAR 2
{'FOO': 1, 'BAR': 2}
第二个看起来像这样:
@click.command()
@click.argument('args', nargs=-1)
def my_command(args):
d = dict(arg.split(':') for arg in args)
click.echo(d)
并且请注意,现在,使用它根本不是很麻烦,因为对于您的shell来说,参数只是用空格分隔的单词:
$./clicky.py FOO:1 BAR:2
{'FOO': 1, 'BAR': 2}
如果要同时处理KEY = VALUE和KEY:VALUE怎么办?然后,您只需要编写比arg.split(‘:’)稍微复杂的内容即可.而且,您可能还需要更好的错误处理.但这应该足以帮助您入门.
标签:python-click,python
来源: https://codeday.me/bug/20191108/2010116.html
python一次删除多个键值对_Python单击:多个键值对参数相关推荐
- python字典值求和_Python两个字典键同值相加的方法总结
Python字典键同值相加详解 两个字典A = {'a': 1, 'b': 2, 'c': 3}, B = {'b': 4, 'c': 6, 'd': 8} 要合并这两个字典,键值同则相加. 两个字典 ...
- python字典中的键是什么_python字典中的键是什么
字典的键 字典中的值没有任何限制, 可以是任意Python对象,即从标准对象到用户自定义对象皆可,但是字典中的键是有类型限制的. (1)不允许一个键对应多个值 必须明确一条原则:每个键只能对应一个项. ...
- python参数默认值实例_Python中使用partial改变方法默认参数实例
#!/usr/bin/env python # -*- coding: utf-8 -*- #python2.7x #partial.py #authror: orangleliu ''' funct ...
- python中and和or的惰性求值特点_python中的惰性求值
可能经常会有人问到python中的range和xrange有什么区别,你知道range是直接创建了一个列表,而xrange是创建了一个生成器,并且xrange非常适合当需要创建一个很大的列表的时候,因 ...
- python表达式3**2**3的值为_Python表达式 1/2 的值为 , 1//3+1//3+1//3 的值为 ,5%3的值为 。_会计基础与实务答案_学小易找答案...
[填空题]f_____ adj. feeling upset and impatient because one cannot control a situation or achieve sth. ...
- python取出字典的某个键_python 取出字典的键或者值/如何删除一个字典的键值对/如何遍历字典...
先定义一个字典并直接进行初始化赋值 my_dict = dict(name="lowman", age=45, money=998, hourse=None) 1.取出该字典所有的 ...
- python字典键值唯一_python字典操作详解
python字典是一个无序.以键值对存储的数据类型,数据关联性强.唯一一个映射数据类型.键:必须是可哈希(不可变的数据类型:字符串.数字.元组.bool)值,并且是唯一的 None: none 是一个 ...
- python读取配置文件获取所有键值对_python笔记14-读取yaml配置文件(pyyaml)
yaml简介 1.yaml [ˈjæməl]: Yet Another Markup Language :另一种标记语言.yaml 是专门用来写配置文件的语言,非常简洁和强大,之前用ini也能写配置文 ...
- python输出键值列表_Python 键值分组或分区数据
Python 使用键值分组或者分区数据,对分组后的数据做何种归约是没有限制的.数据中可能包含一些自变量或者因变量.可以通过自变量对数据进行分区,然后计算每个分区的各项汇总值,包括最大值.最小值.平均值 ...
最新文章
- 使用Leangoo做销售管理系统
- AI 影像诊断平台的5大设计要点
- 离线轻量级大数据平台Spark之读取CSV文件实例
- sql 精读(三) 标准 SQL 中的编号函数示例
- 淘宝网登陆时密码输不进去??
- Python打包分发工具setuptools简介
- dubbo官方文档_不可忽视的Dubbo线程池
- 有益的CountDownLatch和棘手的Java死锁
- MacOS安装pip失败,提示:SyntaxError: invalid syntax
- oracle数据库领域,菜鸟成长课程之《Oracle数据库职业直通车》,引领大家真正进入Oracle数据库领域...
- 2原理图_pcb板设计电路原理图步骤和方法
- 跟着海盗头子创业是一种怎样的体验?
- 软件开发价格估算方法
- mysql中secure_file_priv=不生效的问题
- http协议文字加图解
- 求星期算法c语言程序,C语言根据指定日期计算是星期几
- C#编写上位机连接华为云平台IoTDA
- VSTO | C#快速开发电子签章插件
- 关于相干解调中的同频同相问题
- 5-RNN-06_剧本生成项目
热门文章
- 剑指offer 求1+2+3+...+n
- python科学计算笔记(四)pandas 数据索引与选取
- tomcat web.xml配置
- 分布式系统概念:一致性协议、一致性模型、拜占庭问题、租约、副本协议
- spark编译错误解决 Error:(52, 75) not found: value TCLIService
- 【OpenCV】图像几何变换:旋转,缩放,斜切
- mxGraph实现按住ctrl键盘拖动图形实现复制图形功能
- 改了改之前那个很糙的XXX
- 如何修改ECShop发货单查询显示个数
- PHP中问号?和冒号: 的作用