python 之 sys.argv 外部传参动态匹配内部字典

  • 问题

    在处理传参的过程中,我每次都是使用固定的字典格式取值,却从来没想过用字符串的方式来获取value,以下是解决办法
    eval() 函数用来执行一个字符串表达式,并返回表达式的值。

  • 实例方法
#!/usr/bin/env python
#-*- coding: utf-8 -*-
import sys
g1 = {"g1": {
    "f1": ["a", "b", "c"],
    "f2": ["a1", "b1", "c1"],

}}

g2 = {"g2": {
    "f1": ["a8", "b9", "c10"],
    "f2": ["a11", "b12", "c13"],
    }}



if __name__ == '__main__':

    a = sys.argv[1]
    b = "%s['%s']" % (a, a)
    print(a)
    print("a", eval(a))
    # eval 字符串转成字典,直接可以获取上面字典里面的数据,完美解决了外部传参进来动态获取字典数据
    # 使用异常捕获问题,输入一错误的参数就直接退出,并且打印默认参数
    #

效果:

C:\Users\OP\Desktop\python test.py g1
g1
a {'g1': {'f1': ['a', 'b', 'c'], 'f2': ['a1', 'b1', 'c1']}}

C:\Users\OP\Desktop\英迪瑞讯\IVI_WEB\CMDB\tmp>python test.py g2
g2
a {'g2': {'f1': ['a8', 'b9', 'c10'], 'f2': ['a11', 'b12', 'c13']}}

C:\Users\OP\Desktop\tmp>

  • 经验来之不易,请大家看完觉得有帮助,请给点推荐
posted @ 2020-12-31 17:42  Mr.zou  阅读(606)  评论(0编辑  收藏  举报