mdbq 2.4.2__tar.gz → 2.4.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.4.2 → mdbq-2.4.4}/PKG-INFO +1 -1
- {mdbq-2.4.2 → mdbq-2.4.4}/mdbq/aggregation/aggregation.py +2 -1
- {mdbq-2.4.2 → mdbq-2.4.4}/mdbq/dataframe/converter.py +5 -0
- {mdbq-2.4.2 → mdbq-2.4.4}/mdbq/mysql/mysql.py +4 -1
- {mdbq-2.4.2 → mdbq-2.4.4}/mdbq.egg-info/PKG-INFO +1 -1
- {mdbq-2.4.2 → mdbq-2.4.4}/setup.py +1 -1
- {mdbq-2.4.2 → mdbq-2.4.4}/README.txt +0 -0
- {mdbq-2.4.2 → mdbq-2.4.4}/mdbq/__init__.py +0 -0
- {mdbq-2.4.2 → mdbq-2.4.4}/mdbq/__version__.py +0 -0
- {mdbq-2.4.2 → mdbq-2.4.4}/mdbq/aggregation/__init__.py +0 -0
- {mdbq-2.4.2 → mdbq-2.4.4}/mdbq/aggregation/df_types.py +0 -0
- {mdbq-2.4.2 → mdbq-2.4.4}/mdbq/aggregation/mysql_types.py +0 -0
- {mdbq-2.4.2 → mdbq-2.4.4}/mdbq/aggregation/optimize_data.py +0 -0
- {mdbq-2.4.2 → mdbq-2.4.4}/mdbq/aggregation/query_data.py +0 -0
- {mdbq-2.4.2 → mdbq-2.4.4}/mdbq/bdup/__init__.py +0 -0
- {mdbq-2.4.2 → mdbq-2.4.4}/mdbq/bdup/bdup.py +0 -0
- {mdbq-2.4.2 → mdbq-2.4.4}/mdbq/clean/__init__.py +0 -0
- {mdbq-2.4.2 → mdbq-2.4.4}/mdbq/clean/data_clean.py +0 -0
- {mdbq-2.4.2 → mdbq-2.4.4}/mdbq/company/__init__.py +0 -0
- {mdbq-2.4.2 → mdbq-2.4.4}/mdbq/company/copysh.py +0 -0
- {mdbq-2.4.2 → mdbq-2.4.4}/mdbq/company/home_sh.py +0 -0
- {mdbq-2.4.2 → mdbq-2.4.4}/mdbq/config/__init__.py +0 -0
- {mdbq-2.4.2 → mdbq-2.4.4}/mdbq/config/get_myconf.py +0 -0
- {mdbq-2.4.2 → mdbq-2.4.4}/mdbq/config/products.py +0 -0
- {mdbq-2.4.2 → mdbq-2.4.4}/mdbq/config/set_support.py +0 -0
- {mdbq-2.4.2 → mdbq-2.4.4}/mdbq/config/update_conf.py +0 -0
- {mdbq-2.4.2 → mdbq-2.4.4}/mdbq/dataframe/__init__.py +0 -0
- {mdbq-2.4.2 → mdbq-2.4.4}/mdbq/log/__init__.py +0 -0
- {mdbq-2.4.2 → mdbq-2.4.4}/mdbq/log/mylogger.py +0 -0
- {mdbq-2.4.2 → mdbq-2.4.4}/mdbq/mongo/__init__.py +0 -0
- {mdbq-2.4.2 → mdbq-2.4.4}/mdbq/mongo/mongo.py +0 -0
- {mdbq-2.4.2 → mdbq-2.4.4}/mdbq/mysql/__init__.py +0 -0
- {mdbq-2.4.2 → mdbq-2.4.4}/mdbq/mysql/s_query.py +0 -0
- {mdbq-2.4.2 → mdbq-2.4.4}/mdbq/mysql/year_month_day.py +0 -0
- {mdbq-2.4.2 → mdbq-2.4.4}/mdbq/other/__init__.py +0 -0
- {mdbq-2.4.2 → mdbq-2.4.4}/mdbq/other/porxy.py +0 -0
- {mdbq-2.4.2 → mdbq-2.4.4}/mdbq/other/pov_city.py +0 -0
- {mdbq-2.4.2 → mdbq-2.4.4}/mdbq/other/sku_picture.py +0 -0
- {mdbq-2.4.2 → mdbq-2.4.4}/mdbq/other/ua_sj.py +0 -0
- {mdbq-2.4.2 → mdbq-2.4.4}/mdbq/pbix/__init__.py +0 -0
- {mdbq-2.4.2 → mdbq-2.4.4}/mdbq/pbix/pbix_refresh.py +0 -0
- {mdbq-2.4.2 → mdbq-2.4.4}/mdbq/pbix/refresh_all.py +0 -0
- {mdbq-2.4.2 → mdbq-2.4.4}/mdbq/pbix/refresh_all_old.py +0 -0
- {mdbq-2.4.2 → mdbq-2.4.4}/mdbq/req_post/__init__.py +0 -0
- {mdbq-2.4.2 → mdbq-2.4.4}/mdbq/req_post/req_tb.py +0 -0
- {mdbq-2.4.2 → mdbq-2.4.4}/mdbq/spider/__init__.py +0 -0
- {mdbq-2.4.2 → mdbq-2.4.4}/mdbq/spider/aikucun.py +0 -0
- {mdbq-2.4.2 → mdbq-2.4.4}/mdbq.egg-info/SOURCES.txt +0 -0
- {mdbq-2.4.2 → mdbq-2.4.4}/mdbq.egg-info/dependency_links.txt +0 -0
- {mdbq-2.4.2 → mdbq-2.4.4}/mdbq.egg-info/top_level.txt +0 -0
- {mdbq-2.4.2 → mdbq-2.4.4}/setup.cfg +0 -0
@@ -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
|
-
|
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',
|
@@ -40,6 +40,11 @@ class DataFrameConverter(object):
|
|
40
40
|
df.reset_index(inplace=True, drop=True) # 重置索引,避免下面的 df.loc[0, col] 会出错
|
41
41
|
|
42
42
|
for col in cols:
|
43
|
+
if col.lower() == 'id':
|
44
|
+
df.pop(col) # 等待插入的 df 不能包含 id 列,否则可能跟现有 id 主键冲突
|
45
|
+
continue
|
46
|
+
if col.endswith('占比') or col.endswith('率'):
|
47
|
+
df = df.astype({col: float}, errors='raise')
|
43
48
|
# 百分比在某些数据库中不兼容, 转换百分比为小数
|
44
49
|
df[col] = df[col].apply(lambda x: float(float((str(x).rstrip("%"))) / 100) if str(x).endswith('%') and '~' not in str(x) else x)
|
45
50
|
# 尝试转换合适的数据类型
|
@@ -68,7 +68,7 @@ class MysqlUpload:
|
|
68
68
|
|
69
69
|
return wrapper
|
70
70
|
|
71
|
-
@try_except
|
71
|
+
# @try_except
|
72
72
|
def df_to_mysql(self, df, table_name, db_name='远程数据源', icm_update=[], service_database={'home_lx': 'mysql'}, move_insert=False, df_sql=False, drop_duplicates=False, filename=None, count=None, json_path=None, reset_id=False):
|
73
73
|
"""
|
74
74
|
将 df 写入数据库
|
@@ -167,6 +167,7 @@ class MysqlUpload:
|
|
167
167
|
index=False,
|
168
168
|
chunksize=1000
|
169
169
|
)
|
170
|
+
# 6. 重置自增列
|
170
171
|
try:
|
171
172
|
cursor.execute(f"SHOW COLUMNS FROM {table_name} LIKE 'id'")
|
172
173
|
result = cursor.fetchone()
|
@@ -385,6 +386,8 @@ class MysqlUpload:
|
|
385
386
|
return 'mediumtext'
|
386
387
|
if '文件大小' in col: # bw 程序
|
387
388
|
return 'mediumtext'
|
389
|
+
if col.endswith('占比') and (df[col].dtype == 'float' or df[col].dtype == 'int'):
|
390
|
+
return 'decimal(10,4)'
|
388
391
|
elif dtype == 'datetime64[ns]':
|
389
392
|
return 'DATETIME' # 使用 DATE 后续排重可能会引发不能排重
|
390
393
|
elif dtype == 'int32':
|
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
|
File without changes
|