mdbq 2.3.3__tar.gz → 2.3.4__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.
- {mdbq-2.3.3 → mdbq-2.3.4}/PKG-INFO +1 -1
- {mdbq-2.3.3 → mdbq-2.3.4}/mdbq/aggregation/aggregation.py +7 -7
- {mdbq-2.3.3 → mdbq-2.3.4}/mdbq/aggregation/query_data.py +64 -0
- {mdbq-2.3.3 → mdbq-2.3.4}/mdbq/clean/data_clean.py +13 -1
- {mdbq-2.3.3 → mdbq-2.3.4}/mdbq/spider/aikucun.py +2 -2
- {mdbq-2.3.3 → mdbq-2.3.4}/mdbq.egg-info/PKG-INFO +1 -1
- {mdbq-2.3.3 → mdbq-2.3.4}/setup.py +1 -1
- {mdbq-2.3.3 → mdbq-2.3.4}/README.txt +0 -0
- {mdbq-2.3.3 → mdbq-2.3.4}/mdbq/__init__.py +0 -0
- {mdbq-2.3.3 → mdbq-2.3.4}/mdbq/__version__.py +0 -0
- {mdbq-2.3.3 → mdbq-2.3.4}/mdbq/aggregation/__init__.py +0 -0
- {mdbq-2.3.3 → mdbq-2.3.4}/mdbq/aggregation/df_types.py +0 -0
- {mdbq-2.3.3 → mdbq-2.3.4}/mdbq/aggregation/mysql_types.py +0 -0
- {mdbq-2.3.3 → mdbq-2.3.4}/mdbq/aggregation/optimize_data.py +0 -0
- {mdbq-2.3.3 → mdbq-2.3.4}/mdbq/bdup/__init__.py +0 -0
- {mdbq-2.3.3 → mdbq-2.3.4}/mdbq/bdup/bdup.py +0 -0
- {mdbq-2.3.3 → mdbq-2.3.4}/mdbq/clean/__init__.py +0 -0
- {mdbq-2.3.3 → mdbq-2.3.4}/mdbq/company/__init__.py +0 -0
- {mdbq-2.3.3 → mdbq-2.3.4}/mdbq/company/copysh.py +0 -0
- {mdbq-2.3.3 → mdbq-2.3.4}/mdbq/company/home_sh.py +0 -0
- {mdbq-2.3.3 → mdbq-2.3.4}/mdbq/config/__init__.py +0 -0
- {mdbq-2.3.3 → mdbq-2.3.4}/mdbq/config/get_myconf.py +0 -0
- {mdbq-2.3.3 → mdbq-2.3.4}/mdbq/config/products.py +0 -0
- {mdbq-2.3.3 → mdbq-2.3.4}/mdbq/config/set_support.py +0 -0
- {mdbq-2.3.3 → mdbq-2.3.4}/mdbq/config/update_conf.py +0 -0
- {mdbq-2.3.3 → mdbq-2.3.4}/mdbq/dataframe/__init__.py +0 -0
- {mdbq-2.3.3 → mdbq-2.3.4}/mdbq/dataframe/converter.py +0 -0
- {mdbq-2.3.3 → mdbq-2.3.4}/mdbq/log/__init__.py +0 -0
- {mdbq-2.3.3 → mdbq-2.3.4}/mdbq/log/mylogger.py +0 -0
- {mdbq-2.3.3 → mdbq-2.3.4}/mdbq/mongo/__init__.py +0 -0
- {mdbq-2.3.3 → mdbq-2.3.4}/mdbq/mongo/mongo.py +0 -0
- {mdbq-2.3.3 → mdbq-2.3.4}/mdbq/mysql/__init__.py +0 -0
- {mdbq-2.3.3 → mdbq-2.3.4}/mdbq/mysql/mysql.py +0 -0
- {mdbq-2.3.3 → mdbq-2.3.4}/mdbq/mysql/s_query.py +0 -0
- {mdbq-2.3.3 → mdbq-2.3.4}/mdbq/mysql/year_month_day.py +0 -0
- {mdbq-2.3.3 → mdbq-2.3.4}/mdbq/other/__init__.py +0 -0
- {mdbq-2.3.3 → mdbq-2.3.4}/mdbq/other/porxy.py +0 -0
- {mdbq-2.3.3 → mdbq-2.3.4}/mdbq/other/pov_city.py +0 -0
- {mdbq-2.3.3 → mdbq-2.3.4}/mdbq/other/sku_picture.py +0 -0
- {mdbq-2.3.3 → mdbq-2.3.4}/mdbq/other/ua_sj.py +0 -0
- {mdbq-2.3.3 → mdbq-2.3.4}/mdbq/pbix/__init__.py +0 -0
- {mdbq-2.3.3 → mdbq-2.3.4}/mdbq/pbix/pbix_refresh.py +0 -0
- {mdbq-2.3.3 → mdbq-2.3.4}/mdbq/pbix/refresh_all.py +0 -0
- {mdbq-2.3.3 → mdbq-2.3.4}/mdbq/pbix/refresh_all_old.py +0 -0
- {mdbq-2.3.3 → mdbq-2.3.4}/mdbq/req_post/__init__.py +0 -0
- {mdbq-2.3.3 → mdbq-2.3.4}/mdbq/req_post/req_tb.py +0 -0
- {mdbq-2.3.3 → mdbq-2.3.4}/mdbq/spider/__init__.py +0 -0
- {mdbq-2.3.3 → mdbq-2.3.4}/mdbq.egg-info/SOURCES.txt +0 -0
- {mdbq-2.3.3 → mdbq-2.3.4}/mdbq.egg-info/dependency_links.txt +0 -0
- {mdbq-2.3.3 → mdbq-2.3.4}/mdbq.egg-info/top_level.txt +0 -0
- {mdbq-2.3.3 → mdbq-2.3.4}/setup.cfg +0 -0
@@ -1299,13 +1299,13 @@ if __name__ == '__main__':
|
|
1299
1299
|
username, password, host, port = get_myconf.select_config_values(target_service='nas', database='mysql')
|
1300
1300
|
print(username, password, host, port)
|
1301
1301
|
# file_dir(one_file=False, target_service='company')
|
1302
|
-
one_file_to_mysql(
|
1303
|
-
|
1304
|
-
|
1305
|
-
|
1306
|
-
|
1307
|
-
|
1308
|
-
)
|
1302
|
+
# one_file_to_mysql(
|
1303
|
+
# file='/Users/xigua/Downloads/爱库存_商品榜单_spu_2024-10-17_2024-10-17.csv',
|
1304
|
+
# db_name='爱库存2',
|
1305
|
+
# table_name='商品spu榜单',
|
1306
|
+
# target_service='company',
|
1307
|
+
# database='mysql'
|
1308
|
+
# )
|
1309
1309
|
|
1310
1310
|
# db_name = '推广数据2'
|
1311
1311
|
# table_name = '权益报表'
|
@@ -688,6 +688,53 @@ class MysqlDatasQuery:
|
|
688
688
|
df = pd.concat(_datas, axis=0, ignore_index=True)
|
689
689
|
return df
|
690
690
|
|
691
|
+
def aikucun_bd_spu(self):
|
692
|
+
start_date, end_date = self.months_data(num=self.months)
|
693
|
+
projection = {
|
694
|
+
'日期': 1,
|
695
|
+
'spi_id': 1,
|
696
|
+
'商品名称': 1,
|
697
|
+
'品牌名称': 1,
|
698
|
+
'商品款号': 1,
|
699
|
+
'一级类目名称': 1,
|
700
|
+
'二级类目名称': 1,
|
701
|
+
'三级类目名称': 1,
|
702
|
+
'转发次数': 1,
|
703
|
+
'转发爱豆人数': 1,
|
704
|
+
'访客量': 1,
|
705
|
+
'浏览量': 1,
|
706
|
+
'下单gmv': 1,
|
707
|
+
'成交gmv': 1,
|
708
|
+
'供货额': 1,
|
709
|
+
'供货价': 1,
|
710
|
+
'销售爱豆人数_成交': 1,
|
711
|
+
'支付人数_交易': 1,
|
712
|
+
'支付人数_成交': 1,
|
713
|
+
'销售量_成交': 1,
|
714
|
+
'销售量_交易': 1,
|
715
|
+
'订单数_成交': 1,
|
716
|
+
'订单数_交易': 1,
|
717
|
+
'成交率_交易': 1,
|
718
|
+
'成交率_成交': 1,
|
719
|
+
'可售库存数': 1,
|
720
|
+
'售罄率': 1,
|
721
|
+
'在架sku数': 1,
|
722
|
+
'可售sku数': 1,
|
723
|
+
'sku数_交易': 1,
|
724
|
+
'sku数_成交': 1,
|
725
|
+
'营销后供货额': 1,
|
726
|
+
'营销后供货价': 1,
|
727
|
+
}
|
728
|
+
projection = {}
|
729
|
+
df = self.download.data_to_df(
|
730
|
+
db_name='爱库存2',
|
731
|
+
table_name='商品spu榜单',
|
732
|
+
start_date=start_date,
|
733
|
+
end_date=end_date,
|
734
|
+
projection=projection,
|
735
|
+
)
|
736
|
+
return df
|
737
|
+
|
691
738
|
|
692
739
|
class GroupBy:
|
693
740
|
"""
|
@@ -822,6 +869,17 @@ class GroupBy:
|
|
822
869
|
return df
|
823
870
|
elif '商品索引表' in table_name:
|
824
871
|
return df
|
872
|
+
elif '爱库存_商品spu榜单' in table_name:
|
873
|
+
df.drop_duplicates(
|
874
|
+
subset=[
|
875
|
+
'日期',
|
876
|
+
'spu_id',
|
877
|
+
'访客量',
|
878
|
+
'浏览量',
|
879
|
+
'下单gmv',
|
880
|
+
'成交gmv',
|
881
|
+
], keep='last', inplace=True, ignore_index=True)
|
882
|
+
return df
|
825
883
|
elif '人群报表' in table_name:
|
826
884
|
df.rename(columns={
|
827
885
|
'场景名字': '营销场景',
|
@@ -1713,6 +1771,12 @@ def data_aggregation(service_databases=[{}], months=1):
|
|
1713
1771
|
'唯一主键': [],
|
1714
1772
|
'数据主体': sdq.tg_by_day(),
|
1715
1773
|
},
|
1774
|
+
{
|
1775
|
+
'数据库名': '聚合数据',
|
1776
|
+
'集合名': '爱库存_商品spu榜单',
|
1777
|
+
'唯一主键': [],
|
1778
|
+
'数据主体': sdq.aikucun_bd_spu(),
|
1779
|
+
},
|
1716
1780
|
]
|
1717
1781
|
for items in data_dict: # 遍历返回结果
|
1718
1782
|
db_name, table_name, unique_key_list, df = items['数据库名'], items['集合名'], items['唯一主键'], items['数据主体']
|
@@ -1142,11 +1142,23 @@ class DataClean:
|
|
1142
1142
|
shutil.move(os.path.join(path, _name), t2) # 将文件从下载文件夹移到目标位置
|
1143
1143
|
|
1144
1144
|
# @try_except
|
1145
|
-
def move_all(self, path=None):
|
1145
|
+
def move_all(self, path=None, is_except=[]):
|
1146
1146
|
if not path:
|
1147
1147
|
path = self.path
|
1148
1148
|
for root, dirs, files in os.walk(path, topdown=False):
|
1149
1149
|
for name in files:
|
1150
|
+
print(name)
|
1151
|
+
is_continue = False
|
1152
|
+
if is_except:
|
1153
|
+
for item in is_except:
|
1154
|
+
print(item, f'-----', os.path.join(root, name))
|
1155
|
+
if item in os.path.join(root, name):
|
1156
|
+
# print(name)
|
1157
|
+
is_continue = True
|
1158
|
+
break
|
1159
|
+
if is_continue: # 需要排除不做处理的文件或文件夹
|
1160
|
+
continue
|
1161
|
+
print(is_except, is_continue)
|
1150
1162
|
def bib(paths, _as_month=None):
|
1151
1163
|
"""闭包函数"""
|
1152
1164
|
self.move_files(path=path, _name=name, target_path=paths, _as_month=_as_month)
|
@@ -271,7 +271,7 @@ class AikuCun:
|
|
271
271
|
|
272
272
|
def akucun():
|
273
273
|
akc = AikuCun()
|
274
|
-
akc.get_data(shop_name='aikucun', date_num=
|
274
|
+
akc.get_data(shop_name='aikucun', date_num=1)
|
275
275
|
# akc.clean_data()
|
276
276
|
|
277
277
|
# 新版 数据分类
|
@@ -291,7 +291,7 @@ def akucun():
|
|
291
291
|
c.set_up_to_mysql = False # 不再使用 data_clean 更新数据库,改为 aggregation.py
|
292
292
|
c.new_unzip(is_move=True, ) # 解压文件
|
293
293
|
c.change_and_sort(is_except=['临时文件'])
|
294
|
-
c.move_all() # 移到文件到原始文件夹
|
294
|
+
c.move_all(is_except=['临时文件']) # 移到文件到原始文件夹
|
295
295
|
|
296
296
|
|
297
297
|
if __name__ == '__main__':
|
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
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|