Browse Source

mvp: 行为分值表清空时增加表是否存在判断

Signed-off-by: binren <zhangbr@elab-plus.com>
binren 5 years ago
parent
commit
09d0d91577
1 changed files with 18 additions and 2 deletions
  1. 18 2
      mvp.py

+ 18 - 2
mvp.py

@@ -46,6 +46,16 @@ class Mvp:
     base_insert_sql = 'insert into {}(crowd_info_id, {}, standard_value, status) values(%s, %s, %s, '\
                       '1) '
 
+    def get_table_name(self, name):
+        """
+            获取表名
+        :param name:
+        :return:
+        """
+        params = self.tag_table.get(name)
+        if params:
+            return self.tag_table.get(name)[0]
+
     def get_insert_sql(self, tag_type_name):
         """
             根据标签分类名称获取相应表的插入sql
@@ -198,6 +208,10 @@ class Mvp:
                     id_1 = id[0]
                     if city_2 == city_1 and self.age_dict[age_2] == age_1 and crowd_2 == crowd_1:
                         module_insert_data.append([id_1, module_name_2, module_score_2])
+            # 先清空之前的数据
+            table_name = self.get_table_name('模块分数')
+            if table_name:
+                self.shangju_db.truncate(table_name)
             self.shangju_db.add_some(module_insert_sql, module_insert_data)
             print('模块分数更新完成...')
 
@@ -221,7 +235,9 @@ class Mvp:
                             if city == city_1 and self.age_dict[age] == age_1 and crowd == crowd_1:
                                 insert_data.append([id_1, tag_name, tag_score])
                     if len(insert_data) > 0:
-                        self.shangju_db.truncate(key)
+                        table_name = self.get_table_name(key)
+                        if table_name:
+                            self.shangju_db.truncate(table_name)
                         self.shangju_db.add_some(insert_sql, insert_data)
                 else:
                     print('未找到对应的表,数据无法插入...')
@@ -260,7 +276,7 @@ class Mvp:
         for city in ['上海市', '宁波市', '苏州市', '杭州市', ' 无锡市']:
             for age in ['50-59年生', '60-69年生', '70-74年生', '75-79年生', '80-84年生', '85-89年生', '90-94年生', '95-99年生', '00'
                                                                                                                 '-04年生',
-                        '05-09年生']:
+                        '05-09年生', '10-14年生', '15-19年生']:
                 for c_type in ['A', 'B', 'C', 'D', 'E', 'F']:
                     age_area = self.age_dict.get(age)
                     if age_area: