讓我們開始看吧
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()
可以把列表濒旦,表達式偎漫,等等轉(zhuǎn)意成詞典》嚼海看下面的代碼
>>> 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}
這個方法里面套用了另一個方法名秀,寫在一起可能因為里面的方法僅僅被調(diào)用一次。
一行行解釋
config = underline_dict(json.load(value)) #這里調(diào)用underline_dict(d)函數(shù)
underline_dict(d)的功能是替換詞典key中的_為-藕溅,并且返回這個詞典泰偿。
ctx.default_map = config
ctx是什么東西不知道,以后再看