mdbq 2.4.3__py3-none-any.whl → 2.4.5__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.
@@ -1180,6 +1180,7 @@ def upload_dir(path, db_name, collection_name, dbs={'mysql': True, 'mongodb': Tr
1180
1180
  # continue
1181
1181
  cv = converter.DataFrameConverter()
1182
1182
  df = cv.convert_df_cols(df=df) # 清理列名和 df 中的非法字符
1183
+
1183
1184
  try:
1184
1185
  df = df.astype(dtypes) # 按本地文件更新 df 的数据类型, 可能因为字段不同产生异常
1185
1186
  except Exception as e:
@@ -1298,7 +1299,7 @@ def test2():
1298
1299
  if __name__ == '__main__':
1299
1300
  username, password, host, port = get_myconf.select_config_values(target_service='nas', database='mysql')
1300
1301
  print(username, password, host, port)
1301
- # file_dir(one_file=False, target_service='company')
1302
+ file_dir(one_file=False, target_service='company')
1302
1303
  # one_file_to_mysql(
1303
1304
  # file='/Users/xigua/Downloads/爱库存_商品榜单_spu_2024-10-17_2024-10-17.csv',
1304
1305
  # db_name='爱库存2',
@@ -43,8 +43,13 @@ class DataFrameConverter(object):
43
43
  if col.lower() == 'id':
44
44
  df.pop(col) # 等待插入的 df 不能包含 id 列,否则可能跟现有 id 主键冲突
45
45
  continue
46
+
46
47
  # 百分比在某些数据库中不兼容, 转换百分比为小数
47
48
  df[col] = df[col].apply(lambda x: float(float((str(x).rstrip("%"))) / 100) if str(x).endswith('%') and '~' not in str(x) else x)
49
+
50
+ if col.endswith('占比') or col.endswith('率'):
51
+ df = df.astype({col: float}, errors='raise')
52
+
48
53
  # 尝试转换合适的数据类型
49
54
  if df[col].dtype == 'object':
50
55
  # "_"符号会被错误识别
mdbq/mysql/mysql.py CHANGED
@@ -167,6 +167,8 @@ class MysqlUpload:
167
167
  index=False,
168
168
  chunksize=1000
169
169
  )
170
+ print(f'重置自增')
171
+ # 6. 重置自增列
170
172
  try:
171
173
  cursor.execute(f"SHOW COLUMNS FROM {table_name} LIKE 'id'")
172
174
  result = cursor.fetchone()
@@ -385,6 +387,8 @@ class MysqlUpload:
385
387
  return 'mediumtext'
386
388
  if '文件大小' in col: # bw 程序
387
389
  return 'mediumtext'
390
+ if col.endswith('占比') and (df[col].dtype == 'float' or df[col].dtype == 'int'):
391
+ return 'decimal(10,4)'
388
392
  elif dtype == 'datetime64[ns]':
389
393
  return 'DATETIME' # 使用 DATE 后续排重可能会引发不能排重
390
394
  elif dtype == 'int32':
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mdbq
3
- Version: 2.4.3
3
+ Version: 2.4.5
4
4
  Home-page: https://pypi.org/project/mdbsql
5
5
  Author: xigua,
6
6
  Author-email: 2587125111@qq.com
@@ -1,7 +1,7 @@
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=CS_gMBwPKQo7uId8BrsYNTjtCZKzRVV7gT4PfE2Q46k,76014
4
+ mdbq/aggregation/aggregation.py,sha256=kHKCBRMfpv0F1dq4n75LqOt44K4lRWQCt8MeM6n6hnM,76013
5
5
  mdbq/aggregation/df_types.py,sha256=U9i3q2eRPTDY8qAPTw7irzu-Tlg4CIySW9uYro81wdk,8125
6
6
  mdbq/aggregation/mysql_types.py,sha256=DQYROALDiwjJzjhaJfIIdnsrNs11i5BORlj_v6bp67Y,11062
7
7
  mdbq/aggregation/optimize_data.py,sha256=Wis40oL04M7E1pkvgNPjyVFAUe-zgjimjIVAikxYY8Y,4418
@@ -19,13 +19,13 @@ mdbq/config/products.py,sha256=hN9UMkM6j76HYMulTYdtr3mOhh9QdpvvrLH14a_mbFY,5980
19
19
  mdbq/config/set_support.py,sha256=xkZCX6y9Bq1ppBpJAofld4B2YtchA7fl0eT3dx3CrSI,777
20
20
  mdbq/config/update_conf.py,sha256=taL3ZqKgiVWwUrDFuaYhim9a72Hm4BHRhhDscJTziR8,4535
21
21
  mdbq/dataframe/__init__.py,sha256=2HtCN8AdRj53teXDqzysC1h8aPL-mMFy561ESmhehGQ,22
22
- mdbq/dataframe/converter.py,sha256=LT3ULDXIQA7BUz5t5SLizazjyOHLjPJDLOwa0lRqP34,3984
22
+ mdbq/dataframe/converter.py,sha256=OY5sMFzdF7wkfE59Es-urlZ2oJJY5nkao7009GSyVv4,4110
23
23
  mdbq/log/__init__.py,sha256=Mpbrav0s0ifLL7lVDAuePEi1hJKiSHhxcv1byBKDl5E,15
24
24
  mdbq/log/mylogger.py,sha256=oaT7Bp-Hb9jZt52seP3ISUuxVcI19s4UiqTeouScBO0,3258
25
25
  mdbq/mongo/__init__.py,sha256=SILt7xMtQIQl_m-ik9WLtJSXIVf424iYgCfE_tnQFbw,13
26
26
  mdbq/mongo/mongo.py,sha256=v9qvrp6p1ZRWuPpbSilqveiE0FEcZF7U5xUPI0RN4xs,31880
27
27
  mdbq/mysql/__init__.py,sha256=A_DPJyAoEvTSFojiI2e94zP0FKtCkkwKP1kYUCSyQzo,11
28
- mdbq/mysql/mysql.py,sha256=KJfbe17lcPTfcKdGufW6b5ZHiYHiPSHFvugPNTm8n2M,46645
28
+ mdbq/mysql/mysql.py,sha256=D_0KO7JGFId9brcC6UsHKPgmKx7JMJLd68fqCh8XsSw,46848
29
29
  mdbq/mysql/s_query.py,sha256=37GGHzRpycfUjsYEoQgDpdEs9JwjW-LxFXnGwwP2b2Q,8403
30
30
  mdbq/mysql/year_month_day.py,sha256=VgewoE2pJxK7ErjfviL_SMTN77ki8GVbTUcao3vFUCE,1523
31
31
  mdbq/other/__init__.py,sha256=jso1oHcy6cJEfa7udS_9uO5X6kZLoPBF8l3wCYmr5dM,18
@@ -41,7 +41,7 @@ mdbq/req_post/__init__.py,sha256=jso1oHcy6cJEfa7udS_9uO5X6kZLoPBF8l3wCYmr5dM,18
41
41
  mdbq/req_post/req_tb.py,sha256=PexWSCPJNM6Tv0ol4lAWIhlOwsAr_frnjtcdSHCFiek,36179
42
42
  mdbq/spider/__init__.py,sha256=RBMFXGy_jd1HXZhngB2T2XTvJqki8P_Fr-pBcwijnew,18
43
43
  mdbq/spider/aikucun.py,sha256=Olq7IJP9itM4wuNxZeHOG-Q3i8wWyB4hY8TUGGwCvQ0,14104
44
- mdbq-2.4.3.dist-info/METADATA,sha256=Uhgb1ytjq7-MAb48QIiqM6z6DNJ8RQGHj97NgME-3w8,245
45
- mdbq-2.4.3.dist-info/WHEEL,sha256=eOLhNAGa2EW3wWl_TU484h7q1UNgy0JXjjoqKoxAAQc,92
46
- mdbq-2.4.3.dist-info/top_level.txt,sha256=2FQ-uLnCSB-OwFiWntzmwosW3X2Xqsg0ewh1axsaylA,5
47
- mdbq-2.4.3.dist-info/RECORD,,
44
+ mdbq-2.4.5.dist-info/METADATA,sha256=Viga-WzhqgOumbM49YE8NbTlKMQ-L-vdJkDSueMeI3E,245
45
+ mdbq-2.4.5.dist-info/WHEEL,sha256=eOLhNAGa2EW3wWl_TU484h7q1UNgy0JXjjoqKoxAAQc,92
46
+ mdbq-2.4.5.dist-info/top_level.txt,sha256=2FQ-uLnCSB-OwFiWntzmwosW3X2Xqsg0ewh1axsaylA,5
47
+ mdbq-2.4.5.dist-info/RECORD,,
File without changes