您是否需要深入地转换“任何python对象”?所以这个是给你的。= ]
pyrecursive的Python项目详细描述
耐热草书
你是否曾经需要对whatever python object
进行深度转换?所以这个是给你的。=]
这个库在Python2和Python3上运行(精确地说,是在2.7和3.5上测试的)。
安装:
pip install pyrecursive
用法:
frompyrecursiveimportpyrecursivedefdouble(obj):returnx*2pyrecursive(42,double)# result: 84pyrecursive([1,2,3,[4,5,[6],7],8,9,'x'],double)# result: [2, 4, 6, [8, 10, [12], 14], 16, 18, 'xx']pyrecursive({'hamster':[1,2,3,{'test':42}]},double)# result: {'hamster': [2, 4, 6, {'test': 84}]}# In order to transform dict keys in depth by setting transform_dict_keys variable to True (default: False).pyrecursive({'hamster':[1,2,3,{'test':42}]},double,transform_dict_keys=True)# result: {'hamsterhamster': [2, 4, 6, {'testtest': 84}]}# In order not to transform dict value in depth by setting transform_dict_values variable to False (default: True).pyrecursive({'hamster':[1,2,3,{'test':42}]},double,transform_dict_values=False)# result: {'hamster': [2, 4, 6, {'test': 42}]}# In order to define custom rules for each object type in depth by setting custom_rules variable.pyrecursive([1,2,3,'banana'],double,custom_rules={int:lambdax:x*5})# result: [5, 10, 15, 'bananabanana'] (multiplied by 5 when int, multiplied by 2 otherwise)
贡献
你觉得有什么有趣的功能,还是你发现了一个bug?请告诉我!
当然,您也可以下载项目并发送一些pull requests。请记住:(1)我们遵循PEP8;(2)我们的行长度是120个字符;(3)您的更改必须与Python2.7和Python3.5兼容。
您可以通过opening issues发送建议。
你也可以直接联系我。在http://filwaitman.github.io/查看我的联系信息(电子邮件比手机更受欢迎)。