mdbq 4.0.49__py3-none-any.whl → 4.0.51__py3-none-any.whl
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.
- mdbq/__version__.py +1 -1
- mdbq/aggregation/query_data.py +32 -8
- mdbq/aggregation/set_typ_dict.py +2 -2
- mdbq/spider/aikucun.py +5 -5
- {mdbq-4.0.49.dist-info → mdbq-4.0.51.dist-info}/METADATA +1 -1
- {mdbq-4.0.49.dist-info → mdbq-4.0.51.dist-info}/RECORD +8 -8
- {mdbq-4.0.49.dist-info → mdbq-4.0.51.dist-info}/WHEEL +0 -0
- {mdbq-4.0.49.dist-info → mdbq-4.0.51.dist-info}/top_level.txt +0 -0
mdbq/__version__.py
CHANGED
@@ -1 +1 @@
|
|
1
|
-
VERSION = '4.0.
|
1
|
+
VERSION = '4.0.51'
|
mdbq/aggregation/query_data.py
CHANGED
@@ -244,8 +244,8 @@ class MysqlDatasQuery:
|
|
244
244
|
df_real_sales = self._get_real_sales(shop_list=shop_list)
|
245
245
|
df_shop_gmv = self._get_shop_gmv(shop_list=shop_list)
|
246
246
|
df_tg_data = self._get_tg_data(shop_list=shop_list)
|
247
|
-
df = df_shop_gmv.merge(df_real_sales, on=['日期', '店铺名称'], how='
|
248
|
-
df = df.merge(df_tg_data, on=['日期', '店铺名称'], how='
|
247
|
+
df = df_shop_gmv.merge(df_real_sales, on=['日期', '店铺名称'], how='outer') # 平台数据合并销售数据
|
248
|
+
df = df.merge(df_tg_data, on=['日期', '店铺名称'], how='outer') # 合并推广数据
|
249
249
|
df.fillna(0, inplace=True)
|
250
250
|
set_typ = SET_TYP_DICT[f'{db_name}_{table_name}']
|
251
251
|
return df, {
|
@@ -266,7 +266,7 @@ class MysqlDatasQuery:
|
|
266
266
|
|
267
267
|
def _get_tg_data(self, db_name='聚合数据', table_name='多店推广场景_按日聚合', shop_list:dict=None):
|
268
268
|
start_date, end_date = self.months_data(num=self.months)
|
269
|
-
projection = ['日期', '店铺名称', '营销场景', '花费'
|
269
|
+
projection = ['日期', '店铺名称', '营销场景', '花费']
|
270
270
|
df = self.download_manager.data_to_df(
|
271
271
|
db_name=db_name,
|
272
272
|
table_name=table_name,
|
@@ -275,14 +275,13 @@ class MysqlDatasQuery:
|
|
275
275
|
projection=projection,
|
276
276
|
)
|
277
277
|
if df.empty:
|
278
|
-
return pd.DataFrame(columns=['日期', '店铺名称', '实际消耗'
|
278
|
+
return pd.DataFrame(columns=['日期', '店铺名称', '实际消耗'])
|
279
279
|
df = df[(df['店铺名称'].isin(shop_list.keys()))]
|
280
280
|
df = df.astype({
|
281
281
|
'日期': 'datetime64[ns]',
|
282
282
|
'花费': 'float64',
|
283
|
-
'成交金额': 'float64'
|
284
283
|
})
|
285
|
-
df = df.groupby(['日期', '店铺名称'], as_index=False).agg({'花费': 'sum'
|
284
|
+
df = df.groupby(['日期', '店铺名称'], as_index=False).agg({'花费': 'sum'}).rename(columns={'花费': '实际消耗'})
|
286
285
|
df['店铺名称'] = df['店铺名称'].map(shop_list)
|
287
286
|
return df
|
288
287
|
|
@@ -351,8 +350,33 @@ class MysqlDatasQuery:
|
|
351
350
|
}).rename(
|
352
351
|
columns={'商店名称': '店铺名称', '验收日期': '日期', '金额': '实际营收'}
|
353
352
|
)
|
353
|
+
df_ziying_sales = self._get_ziying_sales(shop_list=shop_list)
|
354
|
+
df = pd.concat([df, df_ziying_sales], ignore_index=True) # e3 合并京东自营业绩
|
354
355
|
return df
|
355
356
|
|
357
|
+
def _get_ziying_sales(self, db_name='京东数据3', table_name='京东自营_vc品牌业绩', shop_list:dict=None):
|
358
|
+
"""获取京东自营业绩"""
|
359
|
+
start_date, end_date = self.months_data(num=self.months)
|
360
|
+
projection = ['日期', '店铺名称', '收入']
|
361
|
+
df = self.download_manager.data_to_df(
|
362
|
+
db_name=db_name,
|
363
|
+
table_name=table_name,
|
364
|
+
start_date=start_date,
|
365
|
+
end_date=end_date,
|
366
|
+
projection=projection,
|
367
|
+
)
|
368
|
+
if df.empty:
|
369
|
+
return pd.DataFrame(columns=['日期', '店铺名称', '收入'])
|
370
|
+
df = df[(df['店铺名称'].isin(shop_list.keys()))]
|
371
|
+
df = df.astype({
|
372
|
+
'日期': 'datetime64[ns]',
|
373
|
+
'收入': 'float64'
|
374
|
+
})
|
375
|
+
df = df.groupby(['日期', '店铺名称'], as_index=False).agg({'收入': 'sum'}).rename(columns={'收入': '实际营收'})
|
376
|
+
df['店铺名称'] = df['店铺名称'].map(shop_list)
|
377
|
+
return df
|
378
|
+
|
379
|
+
|
356
380
|
# @error_handler.log_on_exception(logger=logger)
|
357
381
|
def tg_wxt(self, db_name='聚合数据', table_name='天猫_主体报表', is_maximize=True):
|
358
382
|
start_date, end_date = self.months_data(num=self.months)
|
@@ -2655,7 +2679,7 @@ class MysqlDatasQuery:
|
|
2655
2679
|
projection = {}
|
2656
2680
|
df = self.download_manager.data_to_df(
|
2657
2681
|
db_name='爱库存2',
|
2658
|
-
table_name='
|
2682
|
+
table_name='爱库存_spu榜单',
|
2659
2683
|
start_date=start_date,
|
2660
2684
|
end_date=end_date,
|
2661
2685
|
projection=projection,
|
@@ -3323,7 +3347,7 @@ def query2(months=1, download_manager=None):
|
|
3323
3347
|
sdq.tg_gjc(db_name='聚合数据', table_name='天猫_关键词报表')
|
3324
3348
|
sdq.jd_gjc(db_name='聚合数据', table_name='京东_关键词报表')
|
3325
3349
|
sdq.se_search(db_name='聚合数据', table_name='天猫店铺来源_手淘搜索')
|
3326
|
-
sdq.aikucun_bd_spu(db_name='聚合数据', table_name='爱库存_商品spu榜单')
|
3350
|
+
# sdq.aikucun_bd_spu(db_name='聚合数据', table_name='爱库存_商品spu榜单')
|
3327
3351
|
sdq.dmp_crowd(db_name='聚合数据', table_name='达摩盘_人群报表')
|
3328
3352
|
sdq.deeplink(db_name='聚合数据', table_name='达摩盘_deeplink人群洞察')
|
3329
3353
|
sdq.global_insights(db_name='聚合数据', table_name='全域洞察')
|
mdbq/aggregation/set_typ_dict.py
CHANGED
@@ -573,12 +573,12 @@ SET_TYP_DICT = {
|
|
573
573
|
'聚合数据_多店聚合_日报': {
|
574
574
|
'日期': 'date',
|
575
575
|
'店铺名称': 'varchar(255)',
|
576
|
+
'实际营收': 'decimal(12,2)',
|
577
|
+
'支付金额': 'decimal(12,2)',
|
576
578
|
'访客数': 'int',
|
577
579
|
'浏览量': 'int',
|
578
|
-
'支付金额': 'decimal(12,2)',
|
579
580
|
'支付买家数': 'int',
|
580
581
|
'支付件数': 'int',
|
581
|
-
'实际营收': 'decimal(12,2)',
|
582
582
|
'实际消耗': 'decimal(10,2)',
|
583
583
|
'推广成交金额': 'decimal(12,2)',
|
584
584
|
},
|
mdbq/spider/aikucun.py
CHANGED
@@ -212,6 +212,7 @@ class AikuCun:
|
|
212
212
|
"""
|
213
213
|
这里获取的数据等同于"查询"按钮的数据, 没有"营销后供货额/供货价" 这2个字段, 如果通过下载按钮的报表则有两个字段
|
214
214
|
"""
|
215
|
+
item_type = re.sub('爱库存_', '', item_type)
|
215
216
|
if start_date:
|
216
217
|
self.start_date = start_date
|
217
218
|
if end_date:
|
@@ -480,7 +481,7 @@ class AikuCun:
|
|
480
481
|
)
|
481
482
|
|
482
483
|
|
483
|
-
def main(start_date, end_date=None, item_type=['
|
484
|
+
def main(start_date, end_date=None, item_type=['爱库存_spu']):
|
484
485
|
db_config = {
|
485
486
|
'username': username,
|
486
487
|
'password': password,
|
@@ -493,7 +494,7 @@ def main(start_date, end_date=None, item_type=['spu']):
|
|
493
494
|
ak = AikuCun(uld_manager=uld, download_manager=download)
|
494
495
|
# ak.get_sign()
|
495
496
|
for type_ in item_type:
|
496
|
-
if type_ not in ['
|
497
|
+
if type_ not in ['爱库存_spu', '爱库存_sku']:
|
497
498
|
logger.error(f'{item_type} 非法参数: {type_}')
|
498
499
|
continue
|
499
500
|
for i in range(2):
|
@@ -518,13 +519,12 @@ def main(start_date, end_date=None, item_type=['spu']):
|
|
518
519
|
)
|
519
520
|
|
520
521
|
|
521
|
-
|
522
522
|
if __name__ == '__main__':
|
523
523
|
main(
|
524
524
|
start_date='2025-05-13',
|
525
525
|
# end_date='2025-04-28', # 不传则默认到今天
|
526
526
|
item_type=[
|
527
|
-
'
|
528
|
-
'
|
527
|
+
'爱库存_spu',
|
528
|
+
'爱库存_sku'
|
529
529
|
]
|
530
530
|
)
|
@@ -1,8 +1,8 @@
|
|
1
1
|
mdbq/__init__.py,sha256=Il5Q9ATdX8yXqVxtP_nYqUhExzxPC_qk_WXQ_4h0exg,16
|
2
|
-
mdbq/__version__.py,sha256=
|
2
|
+
mdbq/__version__.py,sha256=BM7d-S3JyI_exrIOENOPbUS0DmkGJNFKr_pNt9dvElM,18
|
3
3
|
mdbq/aggregation/__init__.py,sha256=EeDqX2Aml6SPx8363J-v1lz0EcZtgwIBYyCJV6CcEDU,40
|
4
|
-
mdbq/aggregation/query_data.py,sha256=
|
5
|
-
mdbq/aggregation/set_typ_dict.py,sha256=
|
4
|
+
mdbq/aggregation/query_data.py,sha256=83-CR2jFFrMJMwkuZm43Kn7P3mjTvjP6i4Av6eEudT8,157236
|
5
|
+
mdbq/aggregation/set_typ_dict.py,sha256=Cax8i6My6xuTC8l-eB0AJ-kOZQwPRcZj-P9dhiiaTj0,21078
|
6
6
|
mdbq/log/__init__.py,sha256=Mpbrav0s0ifLL7lVDAuePEi1hJKiSHhxcv1byBKDl5E,15
|
7
7
|
mdbq/log/mylogger.py,sha256=kPe3wsQNaB1slfX-Z7VMqzZoMoqPfc7ylYXZDBeFzzI,24945
|
8
8
|
mdbq/myconf/__init__.py,sha256=jso1oHcy6cJEfa7udS_9uO5X6kZLoPBF8l3wCYmr5dM,18
|
@@ -25,8 +25,8 @@ mdbq/pbix/refresh_all.py,sha256=OBT9EewSZ0aRS9vL_FflVn74d4l2G00wzHiikCC4TC0,5926
|
|
25
25
|
mdbq/redis/__init__.py,sha256=YtgBlVSMDphtpwYX248wGge1x-Ex_mMufz4-8W0XRmA,12
|
26
26
|
mdbq/redis/getredis.py,sha256=vpBuNc22uj9Vr-_Dh25_wpwWM1e-072EAAIBdB_IpL0,23494
|
27
27
|
mdbq/spider/__init__.py,sha256=RBMFXGy_jd1HXZhngB2T2XTvJqki8P_Fr-pBcwijnew,18
|
28
|
-
mdbq/spider/aikucun.py,sha256=
|
29
|
-
mdbq-4.0.
|
30
|
-
mdbq-4.0.
|
31
|
-
mdbq-4.0.
|
32
|
-
mdbq-4.0.
|
28
|
+
mdbq/spider/aikucun.py,sha256=AR4_eT7TY_M5SyFfU0DvM8-InWf7jAu4jGnroMXk-Q0,21973
|
29
|
+
mdbq-4.0.51.dist-info/METADATA,sha256=rGKL_Z4q25_RxubqDhYiUYZeU9p4Bsnsdan-_3m0hrM,364
|
30
|
+
mdbq-4.0.51.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
|
31
|
+
mdbq-4.0.51.dist-info/top_level.txt,sha256=2FQ-uLnCSB-OwFiWntzmwosW3X2Xqsg0ewh1axsaylA,5
|
32
|
+
mdbq-4.0.51.dist-info/RECORD,,
|
File without changes
|
File without changes
|