如何将命令行“key=value”参数转换为字典?
Posted
技术标签:
【中文标题】如何将命令行“key=value”参数转换为字典?【英文标题】:How to convert commandline "key=value" args to dictionary? 【发布时间】:2019-06-02 17:42:37 【问题描述】:目前我需要实现一个 python 程序,它接受任意数量的命令行参数,例如
python myprog.py x1=12 y3=hello zz=60
并且需要将参数转换成字典之类的
"x1": "12", "y3": "hello", "zz": "60"
我尝试了 argparse 模块,但参数中的键(示例中的 x1、y3、zz)无法事先知道,而 argparse 似乎需要我单独添加参数键,所以我认为它不适合这种特定情况?
知道如何完成这种命令行参数到字典的转换,我是否遗漏了一些关于 argparse 的内容或者我需要使用其他东西吗?
【问题讨论】:
【参考方案1】:您可以通过处理字符串来解析它。例如
import sys
kw_dict =
for arg in sys.argv[1:]:
if '=' in arg:
sep = arg.find('=')
key, value = arg[:sep], arg[sep + 1:]
kw_dict[key] = value
【讨论】:
应该是for arg in sys.argv[1:]:
,因为程序名永远不应该是一个有用的参数。此外,使用key, sep, value = arg.partition('=')
将允许值包含等号而不会导致异常。
注意到了。我想我的旧代码的主要问题是它不能处理多个等号。更新代码。以上是关于如何将命令行“key=value”参数转换为字典?的主要内容,如果未能解决你的问题,请参考以下文章
如何将字典的格式更改为 value1;key1;在 Python 3.6 中?
需求:一个页面中需要用到多个字典数据。用于下拉选项,同时,需要将其保存为json格式。以便于key,value的相互转换。记录在实现过程中踩的坑