【python 数据结构】相同某个字段值的所有数据(整理成数组包字典的形式)
class MonitoredKeywordMore(APIView): def post(self, request): try: # 设置原生命令并且请求数据 parents_asin = str(request.data.get("parentsasin")) hour=str(request.data.get("hour")) # 执行原生mysql命令查询 raw_monitored_more = MonitoredMore(hour, parents_asin) obj_rawqueryset = models.MonitoredGoods.objects.raw(raw_monitored_more) # 对请求数据进行序列化 json_data = {} dict = {} for obj in obj_rawqueryset: if not dict.get(obj.single_keyWord): # 如果字典没有这个 关键词(key) dict[obj.single_keyWord] = [] # 就以这个关键词 为key 创建一个空的数组(用于添加以这个关键词为key的rank信息) {'shoes': []} # 创建一个字典添加这个关键词对应的所有排行 item = {} item["heat"] = obj.heat item["ranking"] = obj.ranking item["position"] = obj.position # 把这个关键词对对应的所有需要数据 做成一个字典放在组数里面 dict[obj.single_keyWord].append(item) else: item = {} item["heat"] = obj.heat item["ranking"] = obj.ranking item["position"] = obj.position dict.get(obj.single_keyWord).append(item) json_data['code'] = 200 return Response(dict) except Exception as e: dict_error={} msg = traceback.format_exc() print(msg) logging_main.keyword_error.error(msg) dict_error['message'] = "请求异常" dict_error['code'] = 10004 return JsonResponse(dict_error)