mdbq 1.8.8__py3-none-any.whl → 1.9.0__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/aggregation/aggregation.py +9 -3
- mdbq/aggregation/query_data.py +1 -1
- mdbq/company/copysh.py +2 -2
- mdbq/other/sku_picture.py +51 -6
- {mdbq-1.8.8.dist-info → mdbq-1.9.0.dist-info}/METADATA +1 -1
- {mdbq-1.8.8.dist-info → mdbq-1.9.0.dist-info}/RECORD +8 -8
- {mdbq-1.8.8.dist-info → mdbq-1.9.0.dist-info}/WHEEL +0 -0
- {mdbq-1.8.8.dist-info → mdbq-1.9.0.dist-info}/top_level.txt +0 -0
mdbq/aggregation/aggregation.py
CHANGED
@@ -326,6 +326,7 @@ class DatabaseUpdate:
|
|
326
326
|
df['省份'] = pov
|
327
327
|
df['省+市'] = df[['省份', '城市']].apply(lambda x: f'{x["省份"]}-{x["城市"]}', axis=1)
|
328
328
|
df.replace('NAN', 0, inplace=True)
|
329
|
+
df['笔单价'] = df.apply(lambda x: 0 if x['销售量'] == 0 else 0 if x['销售量'] == '0' else x['笔单价'], axis=1)
|
329
330
|
elif name.endswith('csv') and 'order' in name:
|
330
331
|
# 生意经,订单数据,仅限月数据
|
331
332
|
pattern = re.findall(r'(.*)(\d{4})(\d{2})(\d{2})-(\d{4})(\d{2})(\d{2})', name)
|
@@ -378,6 +379,11 @@ class DatabaseUpdate:
|
|
378
379
|
df.replace(to_replace=['--'], value='', regex=False, inplace=True)
|
379
380
|
df = df[df['人群规模'] != '']
|
380
381
|
if len(df) == 0:
|
382
|
+
if is_move:
|
383
|
+
try:
|
384
|
+
os.remove(os.path.join(root, name)) # 是否移除原文件
|
385
|
+
except Exception as e:
|
386
|
+
print(f'{name}, {e}')
|
381
387
|
continue
|
382
388
|
elif name.endswith('.csv') and '客户_客户概况_画像' in name:
|
383
389
|
df = pd.read_csv(os.path.join(root, name), encoding='utf-8_sig', header=0, na_filter=False)
|
@@ -1109,10 +1115,10 @@ if __name__ == '__main__':
|
|
1109
1115
|
# database='mysql'
|
1110
1116
|
# )
|
1111
1117
|
|
1112
|
-
db_name = '
|
1113
|
-
table_name = '
|
1118
|
+
db_name = '生意经2'
|
1119
|
+
table_name = '省份城市分析'
|
1114
1120
|
upload_dir(
|
1115
|
-
path='/Users/xigua/数据中心/原始文件2
|
1121
|
+
path='/Users/xigua/数据中心/原始文件2/生意经/地域分布',
|
1116
1122
|
db_name=db_name,
|
1117
1123
|
collection_name=table_name,
|
1118
1124
|
dbs={'mysql': True, 'mongodb': False},
|
mdbq/aggregation/query_data.py
CHANGED
@@ -1483,7 +1483,7 @@ def main():
|
|
1483
1483
|
|
1484
1484
|
|
1485
1485
|
if __name__ == '__main__':
|
1486
|
-
data_aggregation(service_databases=[{'company': 'mysql'}], months=
|
1486
|
+
data_aggregation(service_databases=[{'company': 'mysql'}], months=24) # 正常的聚合所有数据
|
1487
1487
|
# data_aggregation_one(service_databases=[{'company': 'mysql'}], months=1) # 单独聚合某一个数据库,具体库进函数编辑
|
1488
1488
|
# optimize_data.op_data(service_databases=[{'company': 'mysql'}], days=3650) # 立即启动对聚合数据的清理工作
|
1489
1489
|
|
mdbq/company/copysh.py
CHANGED
@@ -256,8 +256,8 @@ class TbFiles:
|
|
256
256
|
r = refresh_all.RefreshAll()
|
257
257
|
for file in files:
|
258
258
|
if file.endswith('.xlsx'):
|
259
|
-
now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
|
260
|
-
print(f'正在刷新 excel: {file}')
|
259
|
+
# now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
|
260
|
+
# print(f'{now}正在刷新 excel: {file}')
|
261
261
|
r.refresh_excel2(excel_file=os.path.join(excel_path, file))
|
262
262
|
time.sleep(10)
|
263
263
|
|
mdbq/other/sku_picture.py
CHANGED
@@ -434,6 +434,7 @@ class SkuPicture:
|
|
434
434
|
'推荐卖点': desc,
|
435
435
|
'是否新增': data['是否新增'],
|
436
436
|
'类目': leimu,
|
437
|
+
'更新时间': datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
|
437
438
|
}
|
438
439
|
)
|
439
440
|
except Exception as e:
|
@@ -454,7 +455,8 @@ class SkuPicture:
|
|
454
455
|
|
455
456
|
if results:
|
456
457
|
self.df = pd.concat(results)
|
457
|
-
self.df =
|
458
|
+
self.df.to_csv('C:\\Users\\Administrator\\Downloads\\商品id_编码_图片_临时文件.csv', encoding='utf-8_sig', index=False, header=True)
|
459
|
+
self.df = self.df[df['sku图片链接'] != '0']
|
458
460
|
|
459
461
|
def read_df(self):
|
460
462
|
path = os.path.join(self.path, self.filename)
|
@@ -483,6 +485,7 @@ class DownloadPicture():
|
|
483
485
|
self.filename = ''
|
484
486
|
if not os.path.exists(self.save_path):
|
485
487
|
os.mkdir(self.save_path)
|
488
|
+
self.local_file = ''
|
486
489
|
|
487
490
|
def get_df_from_service(self):
|
488
491
|
start_date, end_date = self.months_data(num=self.months)
|
@@ -501,7 +504,14 @@ class DownloadPicture():
|
|
501
504
|
projection=projection,
|
502
505
|
)
|
503
506
|
|
507
|
+
def get_df_from_local(self):
|
508
|
+
if not os.path.isfile(self.local_file):
|
509
|
+
return
|
510
|
+
self.df = pd.read_excel(self.local_file, header=0, engine='openpyxl')
|
511
|
+
|
504
512
|
def download_data(self):
|
513
|
+
if not os.path.exists(self.save_path):
|
514
|
+
os.mkdir(self.save_path)
|
505
515
|
dict_data = self.df.to_dict('records')
|
506
516
|
num = len(dict_data)
|
507
517
|
i = 0
|
@@ -525,6 +535,31 @@ class DownloadPicture():
|
|
525
535
|
i += 1
|
526
536
|
time.sleep(0.5)
|
527
537
|
|
538
|
+
def download_data_from_local(self):
|
539
|
+
if not os.path.exists(self.save_path):
|
540
|
+
os.mkdir(self.save_path)
|
541
|
+
dict_data = self.df.to_dict('records')
|
542
|
+
num = len(dict_data)
|
543
|
+
i = 0
|
544
|
+
for data in dict_data:
|
545
|
+
url = data['商品图片']
|
546
|
+
self.filename = f'{data['商品id']}_{data['商家编码']}.jpg'
|
547
|
+
if os.path.isfile(os.path.join(self.save_path, self.filename)):
|
548
|
+
i += 1
|
549
|
+
continue
|
550
|
+
if 'https' not in url:
|
551
|
+
i += 1
|
552
|
+
continue
|
553
|
+
|
554
|
+
print(f'正在下载: {i}/{num}, {data['商品id']}')
|
555
|
+
self.headers.update({'User-Agent': ua_sj.get_ua()})
|
556
|
+
res = requests.get(url, headers=self.headers) # 下载图片到内存
|
557
|
+
# 保存图片到本地文件夹
|
558
|
+
with open(os.path.join(self.save_path, self.filename), 'wb') as f:
|
559
|
+
f.write(res.content)
|
560
|
+
i += 1
|
561
|
+
time.sleep(0.5)
|
562
|
+
|
528
563
|
@staticmethod
|
529
564
|
def months_data(num=0, end_date=None):
|
530
565
|
""" 读取近 num 个月的数据, 0 表示读取当月的数据 """
|
@@ -708,20 +743,30 @@ def main(service_name, database):
|
|
708
743
|
def main2(service_name, database):
|
709
744
|
""" 从数据库读取数据,并下载图片到本地 """
|
710
745
|
d = DownloadPicture(service_name=service_name)
|
711
|
-
d.save_path = '/Users/xigua/Downloads/sku图片链接' # 下载图片到本地时的存储位置
|
712
|
-
d.get_df_from_service()
|
713
|
-
d.download_data()
|
746
|
+
# d.save_path = '/Users/xigua/Downloads/sku图片链接' # 下载图片到本地时的存储位置
|
747
|
+
# d.get_df_from_service() # 从数据库读取数据
|
748
|
+
# d.download_data()
|
749
|
+
|
750
|
+
d.save_path = '/Users/xigua/Downloads/商品id_商家编码_图片' # 下载图片到本地时的存储位置
|
751
|
+
d.local_file = '/Users/xigua/Downloads/商品id图片对照表.xlsx'
|
752
|
+
d.get_df_from_local()
|
753
|
+
d.download_data_from_local()
|
714
754
|
|
715
755
|
|
716
756
|
def main3():
|
757
|
+
""" """
|
717
758
|
p = InsertPicture()
|
718
759
|
p.filename = 'test.xlsx'
|
719
760
|
# p.header = 1
|
720
761
|
p.insert_data()
|
721
762
|
|
722
763
|
|
764
|
+
def main4():
|
765
|
+
""" 从 文件中读取图片链接并下载到本地 """
|
766
|
+
|
767
|
+
|
723
768
|
|
724
769
|
if __name__ == '__main__':
|
725
|
-
main(service_name='home_lx', database='mysql')
|
726
|
-
|
770
|
+
# main(service_name='home_lx', database='mysql')
|
771
|
+
main2(service_name='home_lx', database='mysql')
|
727
772
|
# main3()
|
@@ -1,17 +1,17 @@
|
|
1
1
|
mdbq/__init__.py,sha256=Il5Q9ATdX8yXqVxtP_nYqUhExzxPC_qk_WXQ_4h0exg,16
|
2
2
|
mdbq/__version__.py,sha256=y9Mp_8x0BCZSHsdLT_q5tX9wZwd5QgqrSIENLrb6vXA,62
|
3
3
|
mdbq/aggregation/__init__.py,sha256=EeDqX2Aml6SPx8363J-v1lz0EcZtgwIBYyCJV6CcEDU,40
|
4
|
-
mdbq/aggregation/aggregation.py,sha256=
|
4
|
+
mdbq/aggregation/aggregation.py,sha256=LEOpmH_Kyf08N4z9pdqMznRicLp9ON28UJZyZMZS1Uo,65029
|
5
5
|
mdbq/aggregation/df_types.py,sha256=oQJS2IBU3_IO6GMgbssHuC2yCjNnbta0QPGrFOwNLnU,7591
|
6
6
|
mdbq/aggregation/mysql_types.py,sha256=DQYROALDiwjJzjhaJfIIdnsrNs11i5BORlj_v6bp67Y,11062
|
7
7
|
mdbq/aggregation/optimize_data.py,sha256=u2Kl_MFtZueXJ57ycy4H2OhXD431RctUYJYCl637uT0,4176
|
8
|
-
mdbq/aggregation/query_data.py,sha256=
|
8
|
+
mdbq/aggregation/query_data.py,sha256=u4f5Pdy_foD225FzNigOJ20FCiu0wedP2gVvlai-mUw,70447
|
9
9
|
mdbq/bdup/__init__.py,sha256=AkhsGk81SkG1c8FqDH5tRq-8MZmFobVbN60DTyukYTY,28
|
10
10
|
mdbq/bdup/bdup.py,sha256=LAV0TgnQpc-LB-YuJthxb0U42_VkPidzQzAagan46lU,4234
|
11
11
|
mdbq/clean/__init__.py,sha256=A1d6x3L27j4NtLgiFV5TANwEkLuaDfPHDQNrPBbNWtU,41
|
12
12
|
mdbq/clean/data_clean.py,sha256=T0WYOKFwNZTNk3temKOw1K2H54kxu9QBJjlTbkMtxNk,94217
|
13
13
|
mdbq/company/__init__.py,sha256=qz8F_GsP_pMB5PblgJAUAMjasuZbOEp3qQOCB39E8f0,21
|
14
|
-
mdbq/company/copysh.py,sha256=
|
14
|
+
mdbq/company/copysh.py,sha256=4PGjvmPzvrmstOaAwHQGFXIGCWqqNXZEOYf1QdUvMlI,17762
|
15
15
|
mdbq/config/__init__.py,sha256=jso1oHcy6cJEfa7udS_9uO5X6kZLoPBF8l3wCYmr5dM,18
|
16
16
|
mdbq/config/get_myconf.py,sha256=-CFEW0dQh4OIwVgwK-cL0eVp1LN3PjJgN89d4P5TB9I,6011
|
17
17
|
mdbq/config/products.py,sha256=vIK8DJ-F3XXwvNPK-4OJq2tZITNlL6Sub8QBdoOng8U,5676
|
@@ -30,13 +30,13 @@ mdbq/mysql/year_month_day.py,sha256=VgewoE2pJxK7ErjfviL_SMTN77ki8GVbTUcao3vFUCE,
|
|
30
30
|
mdbq/other/__init__.py,sha256=jso1oHcy6cJEfa7udS_9uO5X6kZLoPBF8l3wCYmr5dM,18
|
31
31
|
mdbq/other/porxy.py,sha256=UHfgEyXugogvXgsG68a7QouUCKaohTKKkI4RN-kYSdQ,4961
|
32
32
|
mdbq/other/pov_city.py,sha256=AEOmCOzOwyjHi9LLZWPKi6DUuSC-_M163664I52u9qw,21050
|
33
|
-
mdbq/other/sku_picture.py,sha256=
|
33
|
+
mdbq/other/sku_picture.py,sha256=Et8gpfAEqe7J9Z1TQSSPNuZ1OytesUztnFHMoxCfNv0,35866
|
34
34
|
mdbq/other/ua_sj.py,sha256=JuVYzc_5QZ9s_oQSrTHVKkQv4S_7-CWx4oIKOARn_9U,22178
|
35
35
|
mdbq/pbix/__init__.py,sha256=Trtfaynu9RjoTyLLYBN2xdRxTvm_zhCniUkVTAYwcjo,24
|
36
36
|
mdbq/pbix/pbix_refresh.py,sha256=JUjKW3bNEyoMVfVfo77UhguvS5AWkixvVhDbw4_MHco,2396
|
37
37
|
mdbq/pbix/refresh_all.py,sha256=0uAnBKCd5cx5FLTkawN1GV9yi87rfyMgYal5LABtumQ,7186
|
38
38
|
mdbq/spider/__init__.py,sha256=RBMFXGy_jd1HXZhngB2T2XTvJqki8P_Fr-pBcwijnew,18
|
39
|
-
mdbq-1.
|
40
|
-
mdbq-1.
|
41
|
-
mdbq-1.
|
42
|
-
mdbq-1.
|
39
|
+
mdbq-1.9.0.dist-info/METADATA,sha256=2SY_Iv7xOesLzV_0mOfXlEPeYjbVSshWuoLOXj-mAoA,245
|
40
|
+
mdbq-1.9.0.dist-info/WHEEL,sha256=eOLhNAGa2EW3wWl_TU484h7q1UNgy0JXjjoqKoxAAQc,92
|
41
|
+
mdbq-1.9.0.dist-info/top_level.txt,sha256=2FQ-uLnCSB-OwFiWntzmwosW3X2Xqsg0ewh1axsaylA,5
|
42
|
+
mdbq-1.9.0.dist-info/RECORD,,
|
File without changes
|
File without changes
|