拆分含嵌套列表的字典项 实现customer id与brand id的一一映射
问题修复方案
核心逻辑说明
原实现仅按品牌维度单次遍历,将单品牌下所有客户ID整体赋值给单个Batch,导致输出字段携带列表嵌套结构。调整为双层循环,外层遍历品牌分组,内层遍历单品牌下所有客户,每个客户单独生成独立的Batch对象即可。
修改后代码
import pandas as pd df_dict = {} for brand, values in reduced_df_send_message_now.groupby('brand_id'): df_dict.update({'brand_' + str(brand) : values.reset_index(drop=True)}) customers = [['1704283852'], ['1542053114', '1268330200', '1006435031']] casino_ids = [['2000'], ['2080', '2080', '2080']] batch_list = [] # 遍历每个品牌对应的客户组、赌场ID组 for customer_group, casino_group in zip(customers, casino_ids): # 同品牌下赌场ID完全一致,直接取第一个值使用 casino_id = casino_group[0] # 遍历当前品牌下所有客户,每个客户单独生成Batch for customer_id in customer_group: batch = Batch() batch.user_identities = {'customer_id': customer_id} batch.user_attributes = {'casino_id': casino_id} batch_list.append(batch)
效果验证
调整后生成的batch_list元素结构完全匹配给出的target示例,单品牌下有多少个客户就会生成多少个独立的Batch对象,字段值均为字符串而非列表。
内容的提问来源于stack exchange,提问作者AofWessex
相关产品推荐
相关产品推荐

