【发布时间】:2022-01-28 03:36:45
【问题描述】:
我想从命令行处理多组数据的输入,但我不知道该怎么做。我认为有多个可选参数和多个位置参数会起作用,但我不知道该怎么做。
例如,我想获取如下数据:
{
'id': 23423423
'host': 'hostname'
'port': 234
}
我希望能够在命令行上输入多个集合。我该怎么做?
我的想法是有一个像这样的命令行:
python check.py -d 23423423 hostname.com 234 -d 22332322 hostname2.com 234
我一直在查看 argparse 以了解如何做到这一点,但如何做到这一点让我望而却步。
【问题讨论】:
-
这能回答你的问题吗? Argparse, handle repeatable set of items
-
我还建议,如果您需要传入结构化数据,那么传入 json(作为文件或命令行字符串)可能是更好的选择。
-
我将其描述为多组
optionals,标记参数。使用append和nargs=3,您将获得一个列表列表,您可以在解析后对其进行重组。 -
@hpaulj 这可能比我的回答更可取,它试图让
arparse自己处理构建dict。 -
@match 不幸的是,关键是要使用数据创建一个 json 文件。如果 json 存在,则没有必要。我有些人难以正确构建数据。