分享一个小工具,通过Python的脚本中已经赋值的变量名,生成字典dict。

参考了以下链接:https://stackoverflow.com/questions/592746/how-can-you-print-a-variable-name-in-python

代码如下

def yield_dict(*p):
    import inspect, re
    for line in inspect.getframeinfo(inspect.currentframe().f_back)[3]:
        m1 = re.search(r'\byield_dict\((.*?)\)', line)
        m2 = m1.groups(1)[0]
        # m3 = re.search(r'\bvarname\s*\(\s*([A-Za-z_][A-Za-z0-9_]*,?\s*)+\)', line)
        m3 = [i.strip() for i in m2.split(',') if i]
        m3 = [i for i in m3 if i]
    assert len(m3) == len(p), 'I melt'
    return dict(zip(m3, p))
a = 1; b= 2
x = yield_dict(a, b)
print(x)

  输出

{'a': 1, 'b': 2}

posted @ 2020-12-24 19:39  就是想学习  阅读(171)  评论(0编辑  收藏  举报