mdbq 3.2.19__py3-none-any.whl → 3.3.1__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.
@@ -3256,7 +3256,8 @@ def main(days=150, months=3):
3256
3256
  "生意经3",
3257
3257
  "达摩盘3",
3258
3258
  '人群画像2',
3259
- '人群画像3',
3259
+ '商品人群画像2',
3260
+ '市场数据3',
3260
3261
  ]
3261
3262
  # 使用 ThreadPoolExecutor 来并行运行
3262
3263
  with concurrent.futures.ThreadPoolExecutor() as executor:
mdbq/mysql/mysql.py CHANGED
@@ -316,7 +316,7 @@ class MysqlUpload:
316
316
  else:
317
317
  print(f'{table_name} 存在复合主键: 存在复合主键: {[item['PrimaryKey'] for item in result]}, 无法重置自增id')
318
318
  except Exception as e:
319
- print(f'333 `{table_name}` {e}')
319
+ print(f'333 {table_name} {e}')
320
320
  connection.rollback()
321
321
  connection.commit()
322
322
 
@@ -684,10 +684,10 @@ class MysqlUpload:
684
684
  self.filename = filename
685
685
  if isinstance(df, pd.DataFrame):
686
686
  if len(df) == 0:
687
- print(f'{db_name}: `{table_name}` 传入的 df 数据长度为0, {self.filename}')
687
+ print(f'{db_name}: {table_name} 传入的 df 数据长度为0, {self.filename}')
688
688
  return
689
689
  else:
690
- print(f'{db_name}: `{table_name}` 传入的 df 不是有效的 dataframe 结构, {self.filename}')
690
+ print(f'{db_name}: {table_name} 传入的 df 不是有效的 dataframe 结构, {self.filename}')
691
691
  return
692
692
  if not db_name or db_name == 'None':
693
693
  print(f'{db_name} 不能为 None')
@@ -813,7 +813,7 @@ class MysqlUpload:
813
813
  else:
814
814
  print(f'{table_name} 存在复合主键: {[item['PrimaryKey'] for item in result]}, 无法重置自增id')
815
815
  except Exception as e:
816
- print(f'333 `{table_name}` {e}')
816
+ print(f'333 {table_name} {e}')
817
817
  connection.rollback()
818
818
  connection.commit() # 提交事务
819
819
  connection.close()
@@ -869,7 +869,7 @@ class MysqlUpload:
869
869
  else:
870
870
  print(f'{table_name} 存在复合主键: {[item['PrimaryKey'] for item in result]}, 无法重置自增id')
871
871
  except Exception as e:
872
- print(f'333 `{table_name}` {e}')
872
+ print(f'333 {table_name} {e}')
873
873
  connection.rollback()
874
874
  connection.close()
875
875
  return
@@ -992,7 +992,7 @@ class MysqlUpload:
992
992
  else:
993
993
  print(f'{table_name} 存在复合主键: {[item['PrimaryKey'] for item in result]}, 无法重置自增id')
994
994
  except Exception as e:
995
- print(f'333 `{table_name}` {e}')
995
+ print(f'333 {table_name} {e}')
996
996
  connection.rollback()
997
997
  connection.commit() # 提交事务
998
998
  connection.close()
@@ -1077,19 +1077,19 @@ class MysqlUpload:
1077
1077
  columns = [desc[0] for desc in cursor.description]
1078
1078
  df = pd.DataFrame(rows, columns=columns) # 转为 df
1079
1079
  except Exception as e:
1080
- print(f'{e} {db_name} -> `{table_name}` 表不存在')
1080
+ print(f'{e} {db_name} -> {table_name} 表不存在')
1081
1081
  return df
1082
1082
  finally:
1083
1083
  connection.close()
1084
1084
 
1085
1085
  if len(df) == 0:
1086
- print(f'database: {db_name}, table: `{table_name}` 查询的数据为空')
1086
+ print(f'database: {db_name}, table: {table_name} 查询的数据为空')
1087
1087
  else:
1088
1088
  now = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
1089
1089
  cost_time = int(time.time() - before_time)
1090
1090
  if cost_time < 1:
1091
1091
  cost_time = round(time.time() - before_time, 2)
1092
- print(f'{now} mysql ({self.host}) 表: `{table_name}` 获取数据长度: {len(df)}, 用时: {cost_time} 秒')
1092
+ print(f'{now} mysql ({self.host}) 表: {table_name} 获取数据长度: {len(df)}, 用时: {cost_time} 秒')
1093
1093
  return df
1094
1094
 
1095
1095
  def upload_pandas(self, update_path, db_name, days=None):
@@ -1302,7 +1302,7 @@ class OptimizeDatas:
1302
1302
  else:
1303
1303
  print(f'{table_name} 存在复合主键: {[item['PrimaryKey'] for item in result]}, 无法重置自增id')
1304
1304
  except Exception as e:
1305
- print(f'333 `{table_name}` {e}')
1305
+ print(f'333 {table_name} {e}')
1306
1306
  self.connection.rollback()
1307
1307
  self.connection.close()
1308
1308
  now = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
@@ -1340,7 +1340,7 @@ class OptimizeDatas:
1340
1340
  sql = f"DELETE FROM `{table_name}` WHERE id IN ({placeholders})"
1341
1341
  cursor.execute(sql, duplicate_id)
1342
1342
  now = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
1343
- print(f"{now} `{table_name}` -> {date.strftime('%Y-%m-%d')} before: {len(datas)}, remove: {cursor.rowcount}")
1343
+ print(f"{now} {table_name} -> {date.strftime('%Y-%m-%d')} before: {len(datas)}, remove: {cursor.rowcount}")
1344
1344
  self.connection.commit() # 提交事务
1345
1345
  except Exception as e:
1346
1346
  print(f'{self.db_name}/{table_name}, {e}')
@@ -1378,7 +1378,7 @@ class OptimizeDatas:
1378
1378
  sql = f"DELETE FROM `{table_name}` WHERE id IN ({placeholders})"
1379
1379
  cursor.execute(sql, duplicate_id)
1380
1380
  now = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
1381
- print(f"{now} `{table_name}` -> before: {len(datas)}, "
1381
+ print(f"{now} {table_name} -> before: {len(datas)}, "
1382
1382
  f"remove: {cursor.rowcount}")
1383
1383
  self.connection.commit() # 提交事务
1384
1384
  except Exception as e:
@@ -953,7 +953,7 @@ def download_sku(service_name='company', database='mysql', db_name='属性设置
953
953
  ) # 3. 回传数据库
954
954
 
955
955
 
956
- def download_spu(username, password, host, port, col_name='白底图', save_path=os.path.join(upload_path, '商品id_商家编码_图片'), ):
956
+ def download_spu(username, password, host, port, heads=0, col_name='白底图', save_path=os.path.join(upload_path, '商品id_商家编码_图片'), ):
957
957
  """
958
958
  从 属性设置 3 -> 商品sku属性 数据库中提取图片地址,下载图片
959
959
  col_name: 从那一列提取图片下载地址 ,, 白底图
@@ -978,7 +978,8 @@ def download_spu(username, password, host, port, col_name='白底图', save_path
978
978
  df['日期'] = df['日期'].astype('datetime64[ns]')
979
979
  df.sort_values(by=['商品id', '日期'], ascending=[False, True], ignore_index=True, inplace=True)
980
980
  df.drop_duplicates(subset=['商品id'], keep='last', inplace=True, ignore_index=True)
981
- df = df.head(30)
981
+ if heads:
982
+ df = df.head(int(heads))
982
983
  # df = df.head(2)
983
984
  if len(df) > 0:
984
985
  # 5. 实例化一个下载器类,并下载数据
@@ -995,6 +996,7 @@ if __name__ == '__main__':
995
996
  password=password,
996
997
  host=host,
997
998
  port=port,
999
+ heads=30,
998
1000
  col_name='白底图',
999
1001
  save_path=os.path.join(upload_path, '商品id_商家编码_图片'),
1000
1002
  )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mdbq
3
- Version: 3.2.19
3
+ Version: 3.3.1
4
4
  Home-page: https://pypi.org/project/mdbq
5
5
  Author: xigua,
6
6
  Author-email: 2587125111@qq.com
@@ -5,9 +5,7 @@ mdbq/aggregation/aggregation.py,sha256=-yzApnlqSN2L0E1YMu5ml-W827qpKQvWPCOI7jj2k
5
5
  mdbq/aggregation/df_types.py,sha256=U9i3q2eRPTDY8qAPTw7irzu-Tlg4CIySW9uYro81wdk,8125
6
6
  mdbq/aggregation/mysql_types.py,sha256=YTGyrF9vcRgfkQbpT-e-JdJ7c7VF1dDHgyx9YZRES8w,10934
7
7
  mdbq/aggregation/optimize_data.py,sha256=RXIv7cACCgYyehAxMjUYi_S7rVyjIwXKWMaM3nduGtA,3068
8
- mdbq/aggregation/query_data.py,sha256=Is5RUwDb_ODjU3WH2S-0b-lV1Jux2xgfE7kwNNvPx4Q,148447
9
- mdbq/aggregation/query_data_bak.py,sha256=r1FU0C4zjXln7oVSrRkElh4Ehl-9mYhGcq57jLbViUA,104071
10
- mdbq/aggregation/query_data_bak20241124.py,sha256=oY95ZK3qt3Wx9pdZKZ5cvDh45Yi5yGj1kl8G6riumHA,144513
8
+ mdbq/aggregation/query_data.py,sha256=CM3qY2yCeYhtZ58U5lVWIQjDqlJSSJZFs5V86dC4VKo,148479
11
9
  mdbq/bdup/__init__.py,sha256=AkhsGk81SkG1c8FqDH5tRq-8MZmFobVbN60DTyukYTY,28
12
10
  mdbq/bdup/bdup.py,sha256=LAV0TgnQpc-LB-YuJthxb0U42_VkPidzQzAagan46lU,4234
13
11
  mdbq/clean/__init__.py,sha256=A1d6x3L27j4NtLgiFV5TANwEkLuaDfPHDQNrPBbNWtU,41
@@ -28,12 +26,12 @@ mdbq/log/mylogger.py,sha256=oaT7Bp-Hb9jZt52seP3ISUuxVcI19s4UiqTeouScBO0,3258
28
26
  mdbq/mongo/__init__.py,sha256=SILt7xMtQIQl_m-ik9WLtJSXIVf424iYgCfE_tnQFbw,13
29
27
  mdbq/mongo/mongo.py,sha256=v9qvrp6p1ZRWuPpbSilqveiE0FEcZF7U5xUPI0RN4xs,31880
30
28
  mdbq/mysql/__init__.py,sha256=A_DPJyAoEvTSFojiI2e94zP0FKtCkkwKP1kYUCSyQzo,11
31
- mdbq/mysql/mysql.py,sha256=4Ef1h6ucw_E8Ej_MOBa5e_IUP9PCzcq9_F0EmXelr7U,82054
29
+ mdbq/mysql/mysql.py,sha256=yWxjrh1uygcb5S84CruNaD5w4oF6lNALNLCNjqR04F4,82030
32
30
  mdbq/mysql/recheck_mysql.py,sha256=rgTpvDMWYTyEn7UQdlig-pdXDluTgiU8JG6lkMh8DV0,8665
33
31
  mdbq/mysql/s_query.py,sha256=MbIprZ4yJDAZ9AahZPzl7hqS695Vs0P-AJNwAtA_EEc,9287
34
32
  mdbq/mysql/year_month_day.py,sha256=VgewoE2pJxK7ErjfviL_SMTN77ki8GVbTUcao3vFUCE,1523
35
33
  mdbq/other/__init__.py,sha256=jso1oHcy6cJEfa7udS_9uO5X6kZLoPBF8l3wCYmr5dM,18
36
- mdbq/other/download_sku_picture.py,sha256=tlGh3oApJyH1vNva2PsMA-mdwl13tHdyLIOLO1FOyfo,45826
34
+ mdbq/other/download_sku_picture.py,sha256=Z2Crtwsv69nMGN8uw7qea_1HghRwil3vfnczBM6Ab80,45879
37
35
  mdbq/other/porxy.py,sha256=UHfgEyXugogvXgsG68a7QouUCKaohTKKkI4RN-kYSdQ,4961
38
36
  mdbq/other/pov_city.py,sha256=AEOmCOzOwyjHi9LLZWPKi6DUuSC-_M163664I52u9qw,21050
39
37
  mdbq/other/sku_picture.py,sha256=JwSXYlzamVqcKCD2tRH2VqYVZNr8fM6f--kcGlTVRnM,50026
@@ -46,7 +44,7 @@ mdbq/req_post/__init__.py,sha256=jso1oHcy6cJEfa7udS_9uO5X6kZLoPBF8l3wCYmr5dM,18
46
44
  mdbq/req_post/req_tb.py,sha256=qg7pet73IgKGmCwxaeUyImJIoeK_pBQT9BBKD7fkBNg,36160
47
45
  mdbq/spider/__init__.py,sha256=RBMFXGy_jd1HXZhngB2T2XTvJqki8P_Fr-pBcwijnew,18
48
46
  mdbq/spider/aikucun.py,sha256=yG0wqvKKqAsx_OQXAy-wAJF_DPITL3r_S-9txb5bnHk,22436
49
- mdbq-3.2.19.dist-info/METADATA,sha256=k853SFwdrs-X-mw5US3F9rK4G0ps5IKA2XWSHJJPWws,244
50
- mdbq-3.2.19.dist-info/WHEEL,sha256=cpQTJ5IWu9CdaPViMhC9YzF8gZuS5-vlfoFihTBC86A,91
51
- mdbq-3.2.19.dist-info/top_level.txt,sha256=2FQ-uLnCSB-OwFiWntzmwosW3X2Xqsg0ewh1axsaylA,5
52
- mdbq-3.2.19.dist-info/RECORD,,
47
+ mdbq-3.3.1.dist-info/METADATA,sha256=i38ZdQqZK4ci9BMpha5-8peJtDs0yOOGMIhos9Ag4FE,243
48
+ mdbq-3.3.1.dist-info/WHEEL,sha256=cpQTJ5IWu9CdaPViMhC9YzF8gZuS5-vlfoFihTBC86A,91
49
+ mdbq-3.3.1.dist-info/top_level.txt,sha256=2FQ-uLnCSB-OwFiWntzmwosW3X2Xqsg0ewh1axsaylA,5
50
+ mdbq-3.3.1.dist-info/RECORD,,