Python读取字典作为main方法的参数



我像下面这样调用一个python:-

python doSomething.py arg1 arg2 {'someKey': 'someValue',"anotherKey":"anotherValue"}

import sys
def main(args):
if len(args) == 0:
print("error")
else:
argument1 = args[0]
argument2 = args[1]
# third is dict
customdict = args[2]
print(customdict["someKey"])
if __name__ == "__main__":
main(sys.argv[1:])

给出如下错误

字符串索引必须是整数,不能是str

我想要得到customdict["someKey"]

这样的值

避免尝试在命令行上使用Python语法和代码。shell和Python是不同的东西(并且服务于不同的目的)。

相反,使用适当的选项。取决于您的操作系统,例如:

python doSomething.py arg1 arg2 --somekey someValue --anotherKey anotherValue

然后在Python程序中转换字典中的这些选项。

如果您最终使用了许多选项,您可以考虑使用配置文件来代替,使用键值对。一个简单的ini类型的配置文件已经足够了。

对于两者(命令行参数和配置文件),更倾向于使用Python附带的现有模块。默认模块为argparseconfigParser。这可能需要一点时间来适应它们,但你的程序会表现得更标准,并且对其他人来说更容易理解。

最后,您看到的错误是因为另一件事:您将customdict分配给args[2],而args[2]只是一个字符串(字符串可能恰好是"{'someKey': 'someValue', 'anotherKey': 'anotherValue'}",或者更可能是"{'someKey':",但您不能将其用作字典)。

相关内容

  • 没有找到相关文章

最新更新