在项目过程中经常出现这样的一种需求,一个字典型列表对象中,某个值需要整体替换为另外一个值。这种需求用循环可以实现,但是比较麻烦。一种典型的场景就是django进行查询后,在查询到不存在的多对多值时,会出现很多None,传给前端后就全部变成null。显示在前端特别难看。如果后端处理的话,会多出很多代码。
利用xToolkit库可以很简单的搞定这个问题
1.安装方法:
pip install xToolkit -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
xToolkit库是我自己封装的python内置库的一个扩展库.把python的datetime,string,list,dist,xthread等数据结构进行了功能的扩展。里面好用的功能比较多,可以前往 https://blog.csdn.net/qq_22409661/article/details/108531485 查看具体用法。
2.导入方法:
from xToolkit import xstring, xdatetime, xthreading, xlise, xfile
3.使用方法比较简单,一行代码即可搞定
# 1.字典型列表的值整体替换
# 2.要求传入参数格式为 [{"id": None, "name": "wuhan"}, {"id": 5, "name": "中国"}, {"id": 25, "name": "上号"}, {"id": 5, "name": "测试"}]
# 3.这种形状的参数即可,比如可以传入 django 的 QuerySet 等
# 4.参数:
# 1.需要替换的对象
# 2.kwargs["rules"] 要求元祖,比如 ((None, ''), (45, 47)))
value = [{"id": None, "name": "wuhan"}, {"id": 5, "name": "中国"}, {"id": 25, "name": "上号"}, {"id": 5, "name": "测试"}]
xlise.basics(value).dict_to_value(rules=((None, ''), ("中国", "china")))
>>[{'id': '', 'name': 'wuhan'}, {'id': 5.0, 'name': 'china'}, {'id': 25.0, 'name': '上号'}, {'id': 5.0, 'name': '测试'}]