下面data列表里的每级科目使用号进行分隔写出实现对data的科目级别=level、子级科目代码=child_code、是否末级=is_last字段进行填充要求child_code之间使用分隔符分隔的python代码
data = [
{'subject': 'A', 'code': 'A', 'parent_code': None},
{'subject': 'B', 'code': 'A.1', 'parent_code': 'A'},
{'subject': 'C', 'code': 'A.1.1', 'parent_code': 'A.1'},
{'subject': 'D', 'code': 'A.1.2', 'parent_code': 'A.1'},
{'subject': 'E', 'code': 'A.2', 'parent_code': 'A'},
{'subject': 'F', 'code': 'A.2.1', 'parent_code': 'A.2'},
{'subject': 'G', 'code': 'B', 'parent_code': None},
{'subject': 'H', 'code': 'B.1', 'parent_code': 'B'},
{'subject': 'I', 'code': 'B.1.1', 'parent_code': 'B.1'},
{'subject': 'J', 'code': 'B.1.2', 'parent_code': 'B.1'},
{'subject': 'K', 'code': 'B.2', 'parent_code': 'B'},
{'subject': 'L', 'code': 'B.2.1', 'parent_code': 'B.2'},
{'subject': 'M', 'code': 'B.2.1.1', 'parent_code': 'B.2.1'}
]
for item in data:
item['level'] = item['code'].count('.')
item['child_code'] = item['code'].split('.')[-1]
item['is_last'] = True
for sub_item in data:
if sub_item['parent_code'] == item['code']:
item['is_last'] = False
break
if item['level'] == 0:
item['child_code'] = item['code']
item['child_code'] = item['child_code'].replace(item['code'] + '.', '')
item['child_code'] = item['child_code'].replace('.', ',')
``
原文地址: http://www.cveoy.top/t/topic/eYJl 著作权归作者所有。请勿转载和采集!