mdbq 3.2.18__py3-none-any.whl → 3.3.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/mysql/mysql.py CHANGED
@@ -180,7 +180,7 @@ class MysqlUpload:
180
180
  __res_dict.update({'数据主体': 'longblob'})
181
181
  return __res_dict, new_dict_data
182
182
 
183
- # @try_except
183
+ @try_except
184
184
  def doc_to_sql(self, db_name, table_name, dict_data, set_typ={}, remove_by_key=None, allow_not_null=False, filename=None, reset_id=False):
185
185
  """
186
186
  db_name:
@@ -316,12 +316,12 @@ 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
 
323
323
 
324
- # @try_except
324
+ @try_except
325
325
  def dict_to_mysql(self, db_name, table_name, dict_data, icm_update=None, main_key=None, unique_main_key=None, index_length=100, set_typ=None, allow_not_null=False, cut_data=None):
326
326
  """
327
327
  插入字典数据
@@ -656,7 +656,7 @@ class MysqlUpload:
656
656
  __res_dict.update({k: 'varchar(255)'})
657
657
  return __res_dict, df
658
658
 
659
- # @try_except
659
+ @try_except
660
660
  def df_to_mysql(self, df, db_name, table_name, set_typ=None, icm_update=[], move_insert=False, df_sql=False, drop_duplicates=False,
661
661
  filename=None, count=None, reset_id=False, allow_not_null=False, cut_data=None):
662
662
  """
@@ -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")
@@ -1318,16 +1318,16 @@ class OptimizeDatas:
1318
1318
  for e_key in except_key:
1319
1319
  if e_key in data.keys(): # 在检查重复数据时,不包含 更新时间 字段
1320
1320
  del data[e_key]
1321
- # try:
1322
- delete_id = data['id']
1323
- del data['id']
1324
- data = re.sub(r'\.0+\', ', '\', ', str(data)) # 统一移除小数点后面的 0
1325
- if data in all_datas: # 数据出现重复时
1326
- duplicate_id.append(delete_id) # 添加 id 到 duplicate_id
1327
- continue
1328
- all_datas.append(data) # 数据没有重复
1329
- # except Exception as e:
1330
- # print(f'{table_name} 函数: mysql - > OptimizeDatas -> delete_duplicate -> {e}')
1321
+ try:
1322
+ delete_id = data['id']
1323
+ del data['id']
1324
+ data = re.sub(r'\.0+\', ', '\', ', str(data)) # 统一移除小数点后面的 0
1325
+ if data in all_datas: # 数据出现重复时
1326
+ duplicate_id.append(delete_id) # 添加 id 到 duplicate_id
1327
+ continue
1328
+ all_datas.append(data) # 数据没有重复
1329
+ except Exception as e:
1330
+ print(f'{table_name} 函数: mysql - > OptimizeDatas -> delete_duplicate -> {e}')
1331
1331
  del all_datas
1332
1332
 
1333
1333
  if not duplicate_id: # 如果没有重复数据,则跳过该数据表
@@ -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.18
3
+ Version: 3.3.0
4
4
  Home-page: https://pypi.org/project/mdbq
5
5
  Author: xigua,
6
6
  Author-email: 2587125111@qq.com
@@ -28,12 +28,12 @@ mdbq/log/mylogger.py,sha256=oaT7Bp-Hb9jZt52seP3ISUuxVcI19s4UiqTeouScBO0,3258
28
28
  mdbq/mongo/__init__.py,sha256=SILt7xMtQIQl_m-ik9WLtJSXIVf424iYgCfE_tnQFbw,13
29
29
  mdbq/mongo/mongo.py,sha256=v9qvrp6p1ZRWuPpbSilqveiE0FEcZF7U5xUPI0RN4xs,31880
30
30
  mdbq/mysql/__init__.py,sha256=A_DPJyAoEvTSFojiI2e94zP0FKtCkkwKP1kYUCSyQzo,11
31
- mdbq/mysql/mysql.py,sha256=1Jsv-Uih9uaJWygirD5SR2vNdEfDn9qVEauisKGnnM0,82038
31
+ mdbq/mysql/mysql.py,sha256=yWxjrh1uygcb5S84CruNaD5w4oF6lNALNLCNjqR04F4,82030
32
32
  mdbq/mysql/recheck_mysql.py,sha256=rgTpvDMWYTyEn7UQdlig-pdXDluTgiU8JG6lkMh8DV0,8665
33
33
  mdbq/mysql/s_query.py,sha256=MbIprZ4yJDAZ9AahZPzl7hqS695Vs0P-AJNwAtA_EEc,9287
34
34
  mdbq/mysql/year_month_day.py,sha256=VgewoE2pJxK7ErjfviL_SMTN77ki8GVbTUcao3vFUCE,1523
35
35
  mdbq/other/__init__.py,sha256=jso1oHcy6cJEfa7udS_9uO5X6kZLoPBF8l3wCYmr5dM,18
36
- mdbq/other/download_sku_picture.py,sha256=tlGh3oApJyH1vNva2PsMA-mdwl13tHdyLIOLO1FOyfo,45826
36
+ mdbq/other/download_sku_picture.py,sha256=Z2Crtwsv69nMGN8uw7qea_1HghRwil3vfnczBM6Ab80,45879
37
37
  mdbq/other/porxy.py,sha256=UHfgEyXugogvXgsG68a7QouUCKaohTKKkI4RN-kYSdQ,4961
38
38
  mdbq/other/pov_city.py,sha256=AEOmCOzOwyjHi9LLZWPKi6DUuSC-_M163664I52u9qw,21050
39
39
  mdbq/other/sku_picture.py,sha256=JwSXYlzamVqcKCD2tRH2VqYVZNr8fM6f--kcGlTVRnM,50026
@@ -46,7 +46,7 @@ mdbq/req_post/__init__.py,sha256=jso1oHcy6cJEfa7udS_9uO5X6kZLoPBF8l3wCYmr5dM,18
46
46
  mdbq/req_post/req_tb.py,sha256=qg7pet73IgKGmCwxaeUyImJIoeK_pBQT9BBKD7fkBNg,36160
47
47
  mdbq/spider/__init__.py,sha256=RBMFXGy_jd1HXZhngB2T2XTvJqki8P_Fr-pBcwijnew,18
48
48
  mdbq/spider/aikucun.py,sha256=yG0wqvKKqAsx_OQXAy-wAJF_DPITL3r_S-9txb5bnHk,22436
49
- mdbq-3.2.18.dist-info/METADATA,sha256=0Ios6aS-xrAmk0h9zT185FLeKXDAMVk-IRRzL0fIFhI,244
50
- mdbq-3.2.18.dist-info/WHEEL,sha256=cpQTJ5IWu9CdaPViMhC9YzF8gZuS5-vlfoFihTBC86A,91
51
- mdbq-3.2.18.dist-info/top_level.txt,sha256=2FQ-uLnCSB-OwFiWntzmwosW3X2Xqsg0ewh1axsaylA,5
52
- mdbq-3.2.18.dist-info/RECORD,,
49
+ mdbq-3.3.0.dist-info/METADATA,sha256=BMRv2VWFHRMrL3bDCsavULbwJuAuKhW1Lth82P9B9OQ,243
50
+ mdbq-3.3.0.dist-info/WHEEL,sha256=eOLhNAGa2EW3wWl_TU484h7q1UNgy0JXjjoqKoxAAQc,92
51
+ mdbq-3.3.0.dist-info/top_level.txt,sha256=2FQ-uLnCSB-OwFiWntzmwosW3X2Xqsg0ewh1axsaylA,5
52
+ mdbq-3.3.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (70.1.0)
2
+ Generator: bdist_wheel (0.44.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5