Browse Source

tongce: match数据清洗逻辑调整

Signed-off-by: binren <zhangbr@elab-plus.com>
binren 5 years ago
parent
commit
155b96b4de
1 changed files with 40 additions and 40 deletions
  1. 40 40
      tongce.py

+ 40 - 40
tongce.py

@@ -483,9 +483,9 @@ class TongCe:
         # 3: 读入答题数据
         self.answers = self.marketing_db.select(self.sql_9)
         # 4: 写入match信息
-        match_data = self.get_question_info_from_db()
-        self.linshi_db.truncate('mvp_page_display_match')
-        self.linshi_db.add_some(self.sql_3, match_data)
+        # match_data = self.get_question_info_from_db()
+        # self.linshi_db.truncate('mvp_page_display_match')
+        # self.linshi_db.add_some(self.sql_3, match_data)
         self.match_data_info = self.get_option_match_info()
         self.linshi_db.truncate('mvp_page_display_data')
 
@@ -493,43 +493,43 @@ class TongCe:
         count = 0
         no_data_case = []
         try:
-        #     for ci in crowd_info:
-        #         insert_data = []
-        #         crowd_info_id = ci[0]
-        #         zhifuli = ci[1]
-        #         age = ci[2]
-        #         city = ci[3]
-        #         juzhujiegou = ci[4]
-        #         data = self.filter_people(city, age, zhifuli, juzhujiegou)
-        #         data.sort(key=lambda obj: obj[0])
-        #         for key, questions_data in groupby(data, key=lambda obj: obj[0]):
-        #             question_data_list = []
-        #             for qd in questions_data:
-        #                 question_data_list.append([x for x in qd])
-        #             rule_id = self.get_rule_id(key, rule)
-        #             if rule_id is not None:
-        #                 question_people = len(question_data_list)
-        #                 if question_people > 0:
-        #                     question_data_list.sort(key=lambda obj: obj[3])
-        #                     for option_name, option_data_1 in groupby(question_data_list, key=lambda obj: obj[3]):
-        #                         option_data_list = []
-        #                         for od in option_data_1:
-        #                             option_data_list.append([x for x in od])
-        #                         if len(option_data_list) > 0:
-        #                             match_id = 0
-        #                             option_name_alias = option_name
-        #                             option_id = option_data_list[0][2]
-        #                             for md in self.match_data_info:
-        #                                 if str(md[1]) == str(key) and str(md[2]) == str(option_id):
-        #                                     match_id = md[0]
-        #                                     option_name_alias = md[3]
-        #                             insert_data.append([crowd_info_id, match_id, rule_id, option_name_alias, len(option_data_list)])
-        #                         else:
-        #                             no_data_case.append([zhifuli, city, age, juzhujiegou, option_name])
-        #                 else:
-        #                     no_data_case.append([zhifuli, city, age, juzhujiegou, key])
-        #         count += len(insert_data)
-        #         self.linshi_db.add_some(self.sql_6, insert_data)
+            for ci in crowd_info:
+                insert_data = []
+                crowd_info_id = ci[0]
+                zhifuli = ci[1]
+                age = ci[2]
+                city = ci[3]
+                juzhujiegou = ci[4]
+                data = self.filter_people(city, age, zhifuli, juzhujiegou)
+                data.sort(key=lambda obj: obj[0])
+                for key, questions_data in groupby(data, key=lambda obj: obj[0]):
+                    question_data_list = []
+                    for qd in questions_data:
+                        question_data_list.append([x for x in qd])
+                    rule_id = self.get_rule_id(key, rule)
+                    if rule_id is not None:
+                        question_people = len(question_data_list)
+                        if question_people > 0:
+                            question_data_list.sort(key=lambda obj: obj[3])
+                            for option_name, option_data_1 in groupby(question_data_list, key=lambda obj: obj[3]):
+                                option_data_list = []
+                                for od in option_data_1:
+                                    option_data_list.append([x for x in od])
+                                if len(option_data_list) > 0:
+                                    match_id = 0
+                                    option_name_alias = option_name
+                                    option_id = option_data_list[0][2]
+                                    for md in self.match_data_info:
+                                        if str(md[1]) == str(key) and str(md[2]) == str(option_id):
+                                            match_id = md[0]
+                                            option_name_alias = md[3]
+                                    insert_data.append([crowd_info_id, match_id, rule_id, option_name_alias, len(option_data_list)])
+                                else:
+                                    no_data_case.append([zhifuli, city, age, juzhujiegou, option_name])
+                        else:
+                            no_data_case.append([zhifuli, city, age, juzhujiegou, key])
+                count += len(insert_data)
+                self.linshi_db.add_some(self.sql_6, insert_data)
             isnert_data_all = []
             quanliang_scores = self.scores()
             for q_s in quanliang_scores: