Python中如何将字典同序号的serial与subject键值对合并为单条数据
Python字典配对处理方案
你可以通过提取键后缀的序号来配对同组的serial和subject数据,生成结构规整的列表后再传到模板渲染即可。
原始数据结构
raw_data = {'serial1': 'BPCE-RNHC-25G8', 'subject1': 'EMP004', 'serial2': '7QF2-6HI9-XKZZ', 'subject2': 'EMP005', 'serial3': '8FIW-9JRB-NY4J', 'subject3': 'EMP003', 'serial4': 'SG8P-YQKG-ZV3C', 'subject4': 'EMP002', 'serial5': 'PBF7-WZHT-WPZR', 'subject5': 'EMP001'}
通用处理代码
适配序号连续/不连续的所有场景:
# 提取所有存在的serial对应的序号 valid_nums = set() for key in raw_data.keys(): if key.startswith('serial'): valid_nums.add(int(key.replace('serial', ''))) # 按序号升序配对生成新的结构化列表 processed_list = [] for num in sorted(valid_nums): processed_list.append({ 'serial': raw_data[f'serial{num}'], 'subject': raw_data[f'subject{num}'] })
处理后的数据结构
[ {'serial': 'BPCE-RNHC-25G8', 'subject': 'EMP004'}, {'serial': '7QF2-6HI9-XKZZ', 'subject': 'EMP005'}, {'serial': '8FIW-9JRB-NY4J', 'subject': 'EMP003'}, {'serial': 'SG8P-YQKG-ZV3C', 'subject': 'EMP002'}, {'serial': 'PBF7-WZHT-WPZR', 'subject': 'EMP001'} ]
HTML模板渲染示例(以Jinja2为例)
直接遍历processed_list即可单条输出对应数据:
{% for item in processed_list %} <div class="record-item"> 序列号:{{ item.serial }} | 关联主体:{{ item.subject }} </div> {% endfor %}
内容的提问来源于stack exchange,提问作者WEI ZHUANG GOH
相关产品推荐
相关产品推荐

