美文网首页
pyspider源代码-run.py之read_config函数

pyspider源代码-run.py之read_config函数

作者: comboo | 来源:发表于2017-03-28 14:23 被阅读42次

    让我们开始看吧

    def read_config(ctx, param, value):
        if not value:
            return {}
        import json
    
        def underline_dict(d):
            if not isinstance(d, dict):
                return d
            return dict((k.replace('-', '_'), underline_dict(v)) for k, v in six.iteritems(d))
    
        config = underline_dict(json.load(value))
        ctx.default_map = config
        return config
    

    知识点

    dict()

    可以把列表,表达式,等等转意成词典。看下面的代码

    >>> dict([('sape', 4139), ('guido', 4127), ('jack', 4098)])
    {'sape': 4139, 'jack': 4098, 'guido': 4127}
    >>> {x: x**2 for x in (2, 4, 6)}
    {2: 4, 4: 16, 6: 36}
    >>> dict(sape=4139, guido=4127, jack=4098)
    {'sape': 4139, 'jack': 4098, 'guido': 4127}
    

    这个方法里面套用了另一个方法,写在一起可能因为里面的方法仅仅被调用一次。

    一行行解释

     config = underline_dict(json.load(value)) #这里调用underline_dict(d)函数
    

    underline_dict(d)的功能是替换词典key中的_为-,并且返回这个词典。

     ctx.default_map = config
    

    ctx是什么东西不知道,以后再看

    相关文章

      网友评论

          本文标题:pyspider源代码-run.py之read_config函数

          本文链接:https://www.haomeiwen.com/subject/ejujottx.html