如何利用列表元素遍历字典值批量获取访客商品推荐
批量获取多访客商品推荐的实现方案
核心思路
遍历访客ID列表,逐个构造符合API要求的Mock请求,调用recommend()接口后收集所有结果,可按需合并或单独存储。
完整代码实现
from unittest.mock import Mock import pandas as pd # 待处理的访客ID列表 visitor_ids = [1234, 4650, 8609, 1675] # 基础请求模板(固定参数部分) base_request_data = {"placement": "recommendations-ctr-airp"} # 存储所有访客的推荐结果 recommendation_results = [] for vid in visitor_ids: # 构造当前访客的请求数据:复制模板并替换访客ID(转为字符串匹配API要求) current_data = base_request_data.copy() current_data["visitorid"] = str(vid) # 创建Mock请求对象,模拟API调用的请求结构 mock_req = Mock(get_json=Mock(return_value=current_data), args=current_data) # 调用推荐接口获取当前访客的结果DataFrame vid_recommendations = recommend(mock_req) # 将结果存入列表 recommendation_results.append(vid_recommendations) # 可选:合并所有结果为一个统一的DataFrame final_combined_df = pd.concat(recommendation_results, ignore_index=True) # 可选:用字典存储每个访客对应的结果,方便按ID查询 result_dict = {vid: df for vid, df in zip(visitor_ids, recommendation_results)}
关键细节说明
- 每次循环需复制基础请求模板,避免修改原字典导致后续请求参数错误
- 必须将数字类型的访客ID转为字符串,与API预期的参数格式保持一致
- 若不需要合并结果,使用字典存储可更便捷地按访客ID查询对应推荐
内容的提问来源于stack exchange,提问作者Anusha Pal
相关产品推荐
相关产品推荐

