mdbq 2.0.5__tar.gz → 2.0.7__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. {mdbq-2.0.5 → mdbq-2.0.7}/PKG-INFO +1 -1
  2. {mdbq-2.0.5 → mdbq-2.0.7}/mdbq/aggregation/aggregation.py +30 -8
  3. {mdbq-2.0.5 → mdbq-2.0.7}/mdbq/aggregation/optimize_data.py +34 -31
  4. {mdbq-2.0.5 → mdbq-2.0.7}/mdbq/aggregation/query_data.py +192 -1
  5. {mdbq-2.0.5 → mdbq-2.0.7}/mdbq/clean/data_clean.py +25 -9
  6. {mdbq-2.0.5 → mdbq-2.0.7}/mdbq.egg-info/PKG-INFO +1 -1
  7. {mdbq-2.0.5 → mdbq-2.0.7}/setup.py +1 -1
  8. {mdbq-2.0.5 → mdbq-2.0.7}/README.txt +0 -0
  9. {mdbq-2.0.5 → mdbq-2.0.7}/mdbq/__init__.py +0 -0
  10. {mdbq-2.0.5 → mdbq-2.0.7}/mdbq/__version__.py +0 -0
  11. {mdbq-2.0.5 → mdbq-2.0.7}/mdbq/aggregation/__init__.py +0 -0
  12. {mdbq-2.0.5 → mdbq-2.0.7}/mdbq/aggregation/df_types.py +0 -0
  13. {mdbq-2.0.5 → mdbq-2.0.7}/mdbq/aggregation/mysql_types.py +0 -0
  14. {mdbq-2.0.5 → mdbq-2.0.7}/mdbq/bdup/__init__.py +0 -0
  15. {mdbq-2.0.5 → mdbq-2.0.7}/mdbq/bdup/bdup.py +0 -0
  16. {mdbq-2.0.5 → mdbq-2.0.7}/mdbq/clean/__init__.py +0 -0
  17. {mdbq-2.0.5 → mdbq-2.0.7}/mdbq/company/__init__.py +0 -0
  18. {mdbq-2.0.5 → mdbq-2.0.7}/mdbq/company/copysh.py +0 -0
  19. {mdbq-2.0.5 → mdbq-2.0.7}/mdbq/config/__init__.py +0 -0
  20. {mdbq-2.0.5 → mdbq-2.0.7}/mdbq/config/get_myconf.py +0 -0
  21. {mdbq-2.0.5 → mdbq-2.0.7}/mdbq/config/products.py +0 -0
  22. {mdbq-2.0.5 → mdbq-2.0.7}/mdbq/config/set_support.py +0 -0
  23. {mdbq-2.0.5 → mdbq-2.0.7}/mdbq/config/update_conf.py +0 -0
  24. {mdbq-2.0.5 → mdbq-2.0.7}/mdbq/dataframe/__init__.py +0 -0
  25. {mdbq-2.0.5 → mdbq-2.0.7}/mdbq/dataframe/converter.py +0 -0
  26. {mdbq-2.0.5 → mdbq-2.0.7}/mdbq/log/__init__.py +0 -0
  27. {mdbq-2.0.5 → mdbq-2.0.7}/mdbq/log/mylogger.py +0 -0
  28. {mdbq-2.0.5 → mdbq-2.0.7}/mdbq/mongo/__init__.py +0 -0
  29. {mdbq-2.0.5 → mdbq-2.0.7}/mdbq/mongo/mongo.py +0 -0
  30. {mdbq-2.0.5 → mdbq-2.0.7}/mdbq/mysql/__init__.py +0 -0
  31. {mdbq-2.0.5 → mdbq-2.0.7}/mdbq/mysql/mysql.py +0 -0
  32. {mdbq-2.0.5 → mdbq-2.0.7}/mdbq/mysql/s_query.py +0 -0
  33. {mdbq-2.0.5 → mdbq-2.0.7}/mdbq/mysql/year_month_day.py +0 -0
  34. {mdbq-2.0.5 → mdbq-2.0.7}/mdbq/other/__init__.py +0 -0
  35. {mdbq-2.0.5 → mdbq-2.0.7}/mdbq/other/porxy.py +0 -0
  36. {mdbq-2.0.5 → mdbq-2.0.7}/mdbq/other/pov_city.py +0 -0
  37. {mdbq-2.0.5 → mdbq-2.0.7}/mdbq/other/sku_picture.py +0 -0
  38. {mdbq-2.0.5 → mdbq-2.0.7}/mdbq/other/ua_sj.py +0 -0
  39. {mdbq-2.0.5 → mdbq-2.0.7}/mdbq/pbix/__init__.py +0 -0
  40. {mdbq-2.0.5 → mdbq-2.0.7}/mdbq/pbix/pbix_refresh.py +0 -0
  41. {mdbq-2.0.5 → mdbq-2.0.7}/mdbq/pbix/refresh_all.py +0 -0
  42. {mdbq-2.0.5 → mdbq-2.0.7}/mdbq/spider/__init__.py +0 -0
  43. {mdbq-2.0.5 → mdbq-2.0.7}/mdbq.egg-info/SOURCES.txt +0 -0
  44. {mdbq-2.0.5 → mdbq-2.0.7}/mdbq.egg-info/dependency_links.txt +0 -0
  45. {mdbq-2.0.5 → mdbq-2.0.7}/mdbq.egg-info/top_level.txt +0 -0
  46. {mdbq-2.0.5 → mdbq-2.0.7}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mdbq
3
- Version: 2.0.5
3
+ Version: 2.0.7
4
4
  Home-page: https://pypi.org/project/mdbsql
5
5
  Author: xigua,
6
6
  Author-email: 2587125111@qq.com
@@ -87,9 +87,19 @@ class DatabaseUpdate:
87
87
  continue
88
88
  df = pd.DataFrame() # 初始化 df
89
89
  encoding = self.get_encoding(file_path=os.path.join(root, name)) # 用于处理 csv 文件
90
- tg_names = ['营销场景报表', '计划报表', '单元报表', '关键词报表', '人群报表', '主体报表',
91
- '其他主体报表',
92
- '创意报表', '地域报表', '权益报表']
90
+ tg_names = [
91
+ '账户报表', # 旧版,后来改成 营销场景报表了,C 店还是旧版
92
+ '营销场景报表',
93
+ '计划报表',
94
+ '单元报表',
95
+ '关键词报表',
96
+ '人群报表',
97
+ '主体报表',
98
+ '其他主体报表',
99
+ '创意报表',
100
+ '地域报表',
101
+ '权益报表',
102
+ ]
93
103
  for tg_name in tg_names:
94
104
  if tg_name in name and '报表汇总' not in name and name.endswith('.csv'): # 排除达摩盘报表: 人群报表汇总
95
105
  pattern = re.findall(r'(.*_)\d{8}_\d{6}', name)
@@ -125,10 +135,16 @@ class DatabaseUpdate:
125
135
  # df.replace(to_replace=[''], value=0, regex=False, inplace=True)
126
136
  # df.fillna(0, inplace=True)
127
137
  if '省' in df.columns.tolist() and '场景名字' in df.columns.tolist() and '地域报表' in name:
128
- db_name = '推广数据2'
138
+ if shop_name == '广东万里马':
139
+ db_name = '推广数据_淘宝店'
140
+ else:
141
+ db_name = '推广数据2'
129
142
  collection_name = f'完整_{tg_name}'
130
143
  else:
131
- db_name = '推广数据2'
144
+ if shop_name == '广东万里马':
145
+ db_name = '推广数据_淘宝店'
146
+ else:
147
+ db_name = '推广数据2'
132
148
  collection_name = f'{tg_name}'
133
149
  check_remove_file = True
134
150
  if name.endswith('.csv') and '超级直播' in name:
@@ -148,6 +164,8 @@ class DatabaseUpdate:
148
164
  shop_name = ''
149
165
  # df.replace(to_replace=['\\N'], value=0, regex=False, inplace=True) # 替换掉特殊字符
150
166
  # df.replace(to_replace=[''], value=0, regex=False, inplace=True)
167
+ if shop_name == '广东万里马':
168
+ db_name = '推广数据_淘宝店'
151
169
  check_remove_file = True
152
170
  elif name.endswith('.xls') and '短直联投' in name:
153
171
  # 短直联投
@@ -1055,13 +1073,17 @@ class DatabaseUpdate:
1055
1073
  # return df
1056
1074
 
1057
1075
  def other_table(self, service_databases=[{'home_lx': 'mysql'}]):
1058
- """ 上传 support 文件夹下的 主推商品.csv """
1076
+ """ 上传 support 文件夹下的 主推货品 """
1059
1077
  support_file = set_support.SetSupport(dirname='support').dirname
1060
- filename = '主推商品.xlsx'
1078
+ filename = '主推货品.xlsx'
1061
1079
  if not os.path.isfile(os.path.join(support_file, filename)):
1062
1080
  return
1063
1081
  # df = pd.read_csv(os.path.join(support_file, filename), encoding='utf-8_sig', header=0, na_filter=False)
1064
1082
  df = pd.read_excel(os.path.join(support_file, filename), header=0)
1083
+ for col in df.columns.tolist():
1084
+ if '预算' in col:
1085
+ df.rename(columns={col: '预算占比'}, inplace=True)
1086
+ df = df[['商品id', '商家编码', '预算占比']]
1065
1087
  for service_database in service_databases:
1066
1088
  for service_name, database in service_database.items():
1067
1089
  username, password, host, port = get_myconf.select_config_values(
@@ -1077,7 +1099,7 @@ class DatabaseUpdate:
1077
1099
  m.df_to_mysql(
1078
1100
  df=df,
1079
1101
  db_name='属性设置2',
1080
- table_name='主推商品',
1102
+ table_name='主推货品',
1081
1103
  move_insert=False, # 先删除,再插入
1082
1104
  df_sql=False, # 值为 True 时使用 df.to_sql 函数上传整个表, 不会排重
1083
1105
  drop_duplicates=True, # 值为 True 时检查重复数据再插入,反之直接上传,会比较慢
@@ -57,7 +57,7 @@ def restart_mongodb():
57
57
  subprocess.call(command, shell=True)
58
58
 
59
59
 
60
- def op_data(db_name_lists, service_databases=None, days: int = 63):
60
+ def op_data(db_name_lists, service_databases=None, days: int = 63, is_mongo=True, is_mysql=True):
61
61
  """ service_databases 这个参数暂时没有用 """
62
62
  # for service_database in service_databases:
63
63
  # for service_name, database in service_database.items():
@@ -71,42 +71,45 @@ def op_data(db_name_lists, service_databases=None, days: int = 63):
71
71
 
72
72
  if socket.gethostname() == 'xigua_lx' or socket.gethostname() == 'xigua1' or socket.gethostname() == 'Mac2.local':
73
73
  # mongodb
74
- username, password, host, port = get_myconf.select_config_values(
75
- target_service='home_lx',
76
- database='mongodb',
77
- )
78
- m = mongo.OptimizeDatas(username=username, password=password, host=host, port=port)
79
- m.db_name_lists = db_name_lists
80
- m.days = days
81
- m.optimize_list()
82
- if m.client:
83
- m.client.close()
84
- print(f'已关闭 mongodb 连接')
74
+ if is_mongo:
75
+ username, password, host, port = get_myconf.select_config_values(
76
+ target_service='home_lx',
77
+ database='mongodb',
78
+ )
79
+ m = mongo.OptimizeDatas(username=username, password=password, host=host, port=port)
80
+ m.db_name_lists = db_name_lists
81
+ m.days = days
82
+ m.optimize_list()
83
+ if m.client:
84
+ m.client.close()
85
+ print(f'已关闭 mongodb 连接')
85
86
 
86
- if socket.gethostname() == 'xigua_lx':
87
- restart_mongodb() # mongodb 太占内存了, 重启服务, 释放内存
87
+ if socket.gethostname() == 'xigua_lx':
88
+ restart_mongodb() # mongodb 太占内存了, 重启服务, 释放内存
88
89
 
89
90
  # Mysql
90
- username, password, host, port = get_myconf.select_config_values(
91
- target_service='home_lx',
92
- database='mysql',
93
- )
94
- s = mysql.OptimizeDatas(username=username, password=password, host=host, port=port)
95
- s.db_name_lists = db_name_lists
96
- s.days = days
97
- s.optimize_list()
91
+ if is_mysql:
92
+ username, password, host, port = get_myconf.select_config_values(
93
+ target_service='home_lx',
94
+ database='mysql',
95
+ )
96
+ s = mysql.OptimizeDatas(username=username, password=password, host=host, port=port)
97
+ s.db_name_lists = db_name_lists
98
+ s.days = days
99
+ s.optimize_list()
98
100
 
99
101
  elif socket.gethostname() == 'company':
100
102
  # Mysql
101
- username, password, host, port = get_myconf.select_config_values(
102
- target_service='company',
103
- database='mysql',
104
- )
105
- s = mysql.OptimizeDatas(username=username, password=password, host=host, port=port)
106
- s.db_name_lists = db_name_lists
107
- s.days = days
108
- s.optimize_list()
103
+ if is_mysql:
104
+ username, password, host, port = get_myconf.select_config_values(
105
+ target_service='company',
106
+ database='mysql',
107
+ )
108
+ s = mysql.OptimizeDatas(username=username, password=password, host=host, port=port)
109
+ s.db_name_lists = db_name_lists
110
+ s.days = days
111
+ s.optimize_list()
109
112
 
110
113
 
111
114
  if __name__ == '__main__':
112
- op_data(db_name_lists=['聚合数据'], service_databases=[{'company': 'mysql'}], days=3650)
115
+ op_data(db_name_lists=['聚合数据'], service_databases=[{'company': 'mysql'}], days=3650, is_mongo=True, is_mysql=True)
@@ -498,6 +498,173 @@ class MysqlDatasQuery:
498
498
  )
499
499
  return df
500
500
 
501
+ def tg_by_day(self):
502
+ """
503
+ 汇总各个店铺的推广数据,按日汇总
504
+ """
505
+ start_date, end_date = self.months_data(num=self.months)
506
+ projection = {
507
+ '日期': 1,
508
+ '场景名字': 1,
509
+ '花费': 1,
510
+ '展现量': 1,
511
+ '点击量': 1,
512
+ '总购物车数': 1,
513
+ '总成交笔数': 1,
514
+ '总成交金额': 1,
515
+ }
516
+ df_tm = self.download.data_to_df(
517
+ db_name='推广数据2',
518
+ table_name='营销场景报表',
519
+ start_date=start_date,
520
+ end_date=end_date,
521
+ projection=projection,
522
+ )
523
+ df_tm.rename(columns={'场景名字': '营销场景'}, inplace=True)
524
+ df_tm = df_tm.groupby(
525
+ ['日期', '营销场景', '花费'],
526
+ as_index=False).agg(
527
+ **{
528
+ '展现量': ('展现量', np.max),
529
+ '点击量': ('点击量', np.max),
530
+ '加购量': ('总购物车数', np.max),
531
+ '成交笔数': ('总成交笔数', np.max),
532
+ '成交金额': ('总成交金额', np.max)
533
+ }
534
+ )
535
+ df_tm.insert(loc=1, column='店铺', value='WLM天猫旗舰店') # df中添加列
536
+
537
+ df_tb = self.download.data_to_df(
538
+ db_name='推广数据_淘宝店',
539
+ table_name='账户报表',
540
+ start_date=start_date,
541
+ end_date=end_date,
542
+ projection=projection,
543
+ )
544
+ df_tb.rename(columns={'场景名字': '营销场景'}, inplace=True)
545
+ df_tb = df_tb.groupby(
546
+ ['日期', '营销场景', '花费'],
547
+ as_index=False).agg(
548
+ **{
549
+ '展现量': ('展现量', np.max),
550
+ '点击量': ('点击量', np.max),
551
+ '加购量': ('总购物车数', np.max),
552
+ '成交笔数': ('总成交笔数', np.max),
553
+ '成交金额': ('总成交金额', np.max)
554
+ }
555
+ )
556
+ df_tb.insert(loc=1, column='店铺', value='淘宝c店') # df中添加列
557
+
558
+ projection = {
559
+ '日期': 1,
560
+ '报表类型': 1,
561
+ '消耗': 1,
562
+ '展现量': 1,
563
+ '点击量': 1,
564
+ '宝贝加购数': 1,
565
+ '成交笔数': 1,
566
+ '成交金额': 1,
567
+ }
568
+ df_tm_pxb = self.download.data_to_df(
569
+ db_name='推广数据2',
570
+ table_name='品销宝',
571
+ start_date=start_date,
572
+ end_date=end_date,
573
+ projection=projection,
574
+ )
575
+ df_tm_pxb = df_tm_pxb[df_tm_pxb['报表类型'] == '账户']
576
+ df_tm_pxb = df_tm_pxb.groupby(
577
+ ['日期', '报表类型', '消耗'],
578
+ as_index=False).agg(
579
+ **{
580
+ '展现量': ('展现量', np.max),
581
+ '点击量': ('点击量', np.max),
582
+ '加购量': ('宝贝加购数', np.max),
583
+ '成交笔数': ('成交笔数', np.max),
584
+ '成交金额': ('成交金额', np.max)
585
+ }
586
+ )
587
+ df_tm_pxb.rename(columns={'报表类型': '营销场景', '消耗': '花费'}, inplace=True)
588
+ df_tm_pxb['营销场景'] = '品销宝'
589
+ df_tm_pxb.insert(loc=1, column='店铺', value='WLM天猫旗舰店') # df中添加列
590
+
591
+ projection = {
592
+ '日期': 1,
593
+ '产品线': 1,
594
+ '触发sku id': 1,
595
+ '跟单sku id': 1,
596
+ '花费': 1,
597
+ '展现数': 1,
598
+ '点击数': 1,
599
+ '直接订单行': 1,
600
+ '直接订单金额': 1,
601
+ '总订单行': 1,
602
+ '总订单金额': 1,
603
+ '直接加购数': 1,
604
+ '总加购数': 1,
605
+ 'spu id': 1,
606
+ }
607
+ df_jd = self.download.data_to_df(
608
+ db_name='京东数据2',
609
+ table_name='推广数据_京准通',
610
+ start_date=start_date,
611
+ end_date=end_date,
612
+ projection=projection,
613
+ )
614
+ df_jd = df_jd.groupby(['日期', '产品线', '触发sku id', '跟单sku id', 'spu id', '花费', '展现数', '点击数'],
615
+ as_index=False).agg(
616
+ **{'直接订单行': ('直接订单行', np.max),
617
+ '直接订单金额': ('直接订单金额', np.max),
618
+ '成交笔数': ('总订单行', np.max),
619
+ '成交金额': ('总订单金额', np.max),
620
+ '直接加购数': ('直接加购数', np.max),
621
+ '加购量': ('总加购数', np.max),
622
+ }
623
+ )
624
+ df_jd = df_jd[['日期', '产品线', '花费', '展现数', '点击数', '加购量', '成交笔数', '成交金额']]
625
+ df_jd.rename(columns={'产品线': '营销场景', '展现数': '展现量', '点击数': '点击量'}, inplace=True)
626
+ df_jd = df_jd[df_jd['花费'] > 0]
627
+ df_jd.insert(loc=1, column='店铺', value='京东箱包') # df中添加列
628
+
629
+ projection = {
630
+ '日期': 1,
631
+ '产品线': 1,
632
+ '花费': 1,
633
+ '全站roi': 1,
634
+ '全站交易额': 1,
635
+ '全站订单行': 1,
636
+ '全站订单成本': 1,
637
+ '全站费比': 1,
638
+ '核心位置展现量': 1,
639
+ '核心位置点击量': 1,
640
+ }
641
+ df_jd_qzyx = self.download.data_to_df(
642
+ db_name='京东数据2',
643
+ table_name='推广数据_全站营销',
644
+ start_date=start_date,
645
+ end_date=end_date,
646
+ projection=projection,
647
+ )
648
+ df_jd_qzyx = df_jd_qzyx.groupby(['日期', '产品线', '花费'], as_index=False).agg(
649
+ **{'全站roi': ('全站roi', np.max),
650
+ '成交金额': ('全站交易额', np.max),
651
+ '成交笔数': ('全站订单行', np.max),
652
+ '全站订单成本': ('全站订单成本', np.max),
653
+ '全站费比': ('全站费比', np.max),
654
+ '展现量': ('核心位置展现量', np.max),
655
+ '点击量': ('核心位置点击量', np.max),
656
+ }
657
+ )
658
+ df_jd_qzyx.rename(columns={'产品线': '营销场景'}, inplace=True)
659
+ df_jd_qzyx = df_jd_qzyx[['日期', '营销场景', '花费', '展现量', '点击量', '成交笔数', '成交金额']]
660
+ df_jd_qzyx = df_jd_qzyx[df_jd_qzyx['花费'] > 0]
661
+ df_jd_qzyx.insert(loc=1, column='店铺', value='京东箱包') # df中添加列
662
+
663
+ _datas = [item for item in [df_tm, df_tb, df_tm_pxb, df_jd, df_jd_qzyx] if len(item) > 0] # 阻止空的 dataframe
664
+ df = pd.concat(_datas, axis=0, ignore_index=True)
665
+ return df
666
+
667
+
501
668
  class GroupBy:
502
669
  """
503
670
  数据聚合和导出
@@ -540,6 +707,8 @@ class GroupBy:
540
707
  }
541
708
  )
542
709
  return pd.DataFrame()
710
+ # elif '多店推广场景_按日聚合' in table_name: # 这个函数传递的是多个 df 组成的列表,暂时放行
711
+ # pass
543
712
  else:
544
713
  print(f'query_data.groupby函数中 {table_name} 传入的 df 不是 dataframe 结构')
545
714
  return pd.DataFrame()
@@ -1063,6 +1232,22 @@ class GroupBy:
1063
1232
  elif '直播场次分析' in table_name:
1064
1233
  df.drop_duplicates(subset=['场次id'], keep='first', inplace=True, ignore_index=True)
1065
1234
  return df
1235
+ elif '多店推广场景_按日聚合' in table_name:
1236
+ df = df.groupby(
1237
+ ['日期', '店铺', '营销场景'],
1238
+ as_index=False).agg(
1239
+ **{
1240
+ '花费': ('花费', np.sum),
1241
+ '展现量': ('展现量', np.sum),
1242
+ '点击量': ('点击量', np.sum),
1243
+ '加购量': ('加购量', np.sum),
1244
+ '成交笔数': ('成交笔数', np.sum),
1245
+ '成交金额': ('成交金额', np.sum)
1246
+ }
1247
+ )
1248
+ df.sort_values(['日期', '店铺', '花费'], ascending=[False, False, False], ignore_index=True, inplace=True)
1249
+ # df.to_csv('/Users/xigua/Downloads/test.csv', encoding='utf-8_sig', index=False, header=True)
1250
+ return df
1066
1251
  else:
1067
1252
  print(f'<{table_name}>: Groupby 类尚未配置,数据为空')
1068
1253
  return pd.DataFrame({})
@@ -1437,6 +1622,12 @@ def data_aggregation(service_databases=[{}], months=1):
1437
1622
  '唯一主键': ['场次id'],
1438
1623
  '数据主体': sdq.zb_ccfx(),
1439
1624
  },
1625
+ {
1626
+ '数据库名': '聚合数据',
1627
+ '集合名': '多店推广场景_按日聚合',
1628
+ '唯一主键': [],
1629
+ '数据主体': sdq.tg_by_day(),
1630
+ },
1440
1631
  ]
1441
1632
  for items in data_dict: # 遍历返回结果
1442
1633
  db_name, table_name, unique_key_list, df = items['数据库名'], items['集合名'], items['唯一主键'], items['数据主体']
@@ -1535,7 +1726,7 @@ def main():
1535
1726
 
1536
1727
 
1537
1728
  if __name__ == '__main__':
1538
- data_aggregation(service_databases=[{'company': 'mysql'}], months=7) # 正常的聚合所有数据
1729
+ data_aggregation(service_databases=[{'company': 'mysql'}], months=1) # 正常的聚合所有数据
1539
1730
  # data_aggregation_one(service_databases=[{'company': 'mysql'}], months=1) # 单独聚合某一个数据库,具体库进函数编辑
1540
1731
  # optimize_data.op_data(service_databases=[{'company': 'mysql'}], days=3650) # 立即启动对聚合数据的清理工作
1541
1732
 
@@ -100,9 +100,19 @@ class DataClean:
100
100
  try:
101
101
  encoding = self.get_encoding(file_path=pathlib.Path(root, name))
102
102
  # ----------------- 推广报表 分割线 -----------------
103
- tg_names = ['营销场景报表', '计划报表', '单元报表', '关键词报表', '人群报表', '主体报表',
104
- '其他主体报表',
105
- '创意报表', '地域报表', '权益报表']
103
+ tg_names = [
104
+ '账户报表', # 旧版,后来改成 营销场景报表了,C 店还是旧版
105
+ '营销场景报表',
106
+ '计划报表',
107
+ '单元报表',
108
+ '关键词报表',
109
+ '人群报表',
110
+ '主体报表',
111
+ '其他主体报表',
112
+ '创意报表',
113
+ '地域报表',
114
+ '权益报表',
115
+ ]
106
116
  for tg_name in tg_names:
107
117
  if tg_name in name and '汇总' not in name and name.endswith('.csv'): # 人群报表排除达摩盘报表: 人群报表汇总
108
118
  pattern = re.findall(r'(.*_)\d{8}_\d{6}', name)
@@ -153,16 +163,22 @@ class DataClean:
153
163
  date_max = f'{df["日期"].values.max()}.csv'
154
164
  if '万里马' in name:
155
165
  tm_s_name = pattern[0] + shop_name + date_min + date_max
156
- new_root_p = pathlib.Path(self.source_path, '推广报表', tg_name) # 文件夹,未包括文件名
166
+ if shop_name == '广东万里马':
167
+ new_root_p = pathlib.Path(self.source_path, '推广报表_淘宝店', tg_name) # 文件夹,未包括文件名
168
+ else:
169
+ new_root_p = pathlib.Path(self.source_path, '推广报表', tg_name) # 文件夹,未包括文件名
157
170
  df['日期'] = pd.to_datetime(df['日期'], format='%Y-%m-%d', errors='ignore')
158
171
  if '省' in df.columns.tolist() and '场景名字' in df.columns.tolist() and '完整' in name:
159
- new_root_p = pathlib.Path(self.source_path, '推广报表', f'完整_{tg_name}')
172
+ if shop_name == '广东万里马':
173
+ new_root_p = pathlib.Path(self.source_path, '推广报表_淘宝店', f'完整_{tg_name}')
174
+ else:
175
+ new_root_p = pathlib.Path(self.source_path, '推广报表', f'完整_{tg_name}')
160
176
  tm_s_name = f'完整_{tm_s_name}'
161
177
  self.save_to_csv(df, new_root_p, tm_s_name)
162
- if self.set_up_to_mogo:
163
- d.df_to_mongo(df=df, db_name='天猫数据1', collection_name=f'天猫_推广_{tg_name}')
164
- if self.set_up_to_mysql:
165
- m.df_to_mysql(df=df, db_name='天猫数据1', tabel_name=f'天猫_推广_{tg_name}')
178
+ # if self.set_up_to_mogo:
179
+ # d.df_to_mongo(df=df, db_name='天猫数据1', collection_name=f'天猫_推广_{tg_name}')
180
+ # if self.set_up_to_mysql:
181
+ # m.df_to_mysql(df=df, db_name='天猫数据1', tabel_name=f'天猫_推广_{tg_name}')
166
182
  os.remove(os.path.join(root, name))
167
183
  else:
168
184
  print(f'{name} 文件名不含"万里马", 不属于爬虫下载,您可以手动进行分类,但不会上传数据库')
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mdbq
3
- Version: 2.0.5
3
+ Version: 2.0.7
4
4
  Home-page: https://pypi.org/project/mdbsql
5
5
  Author: xigua,
6
6
  Author-email: 2587125111@qq.com
@@ -3,7 +3,7 @@
3
3
  from setuptools import setup, find_packages
4
4
 
5
5
  setup(name='mdbq',
6
- version='2.0.5',
6
+ version='2.0.7',
7
7
  author='xigua, ',
8
8
  author_email="2587125111@qq.com",
9
9
  url='https://pypi.org/project/mdbsql',
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes