mdbq 3.7.21__py3-none-any.whl → 3.7.23__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/query_data.py +55 -5
- mdbq/config/config.py +3 -3
- mdbq/other/download_sku_picture.py +1 -1
- {mdbq-3.7.21.dist-info → mdbq-3.7.23.dist-info}/METADATA +8 -2
- {mdbq-3.7.21.dist-info → mdbq-3.7.23.dist-info}/RECORD +7 -10
- {mdbq-3.7.21.dist-info → mdbq-3.7.23.dist-info}/WHEEL +1 -1
- mdbq/config/default_bak.py +0 -58
- mdbq/config/myconfig_bak.py +0 -34
- mdbq/config/products_bak.py +0 -159
- {mdbq-3.7.21.dist-info → mdbq-3.7.23.dist-info}/top_level.txt +0 -0
mdbq/aggregation/query_data.py
CHANGED
@@ -22,7 +22,7 @@ import sys
|
|
22
22
|
|
23
23
|
"""
|
24
24
|
|
25
|
-
content = config.read_config(file_path=os.path.join(os.path.realpath(os.path.dirname(sys.argv[0])), 'spd.
|
25
|
+
content = config.read_config(file_path=os.path.join(os.path.realpath(os.path.dirname(sys.argv[0])), 'spd.txt'))
|
26
26
|
username, password, host, port = content['username'], content['password'], content['host'], content['port']
|
27
27
|
m_engine = mysql.MysqlUpload(username=username, password=password, host=host, port=port, charset='utf8mb4')
|
28
28
|
|
@@ -1011,6 +1011,43 @@ class MysqlDatasQuery:
|
|
1011
1011
|
)
|
1012
1012
|
return True
|
1013
1013
|
|
1014
|
+
def tg_cjzb_qzt(self, is_maximize=True):
|
1015
|
+
start_date, end_date = self.months_data(num=self.months)
|
1016
|
+
projection = {
|
1017
|
+
'日期': 1,
|
1018
|
+
'场景名字': 1,
|
1019
|
+
'计划id': 1,
|
1020
|
+
'全站花费': 1,
|
1021
|
+
'全站观看次数': 1,
|
1022
|
+
'全站宝贝点击量': 1,
|
1023
|
+
'全站成交金额': 1,
|
1024
|
+
'全站成交笔数': 1,
|
1025
|
+
'店铺名称': 1,
|
1026
|
+
}
|
1027
|
+
__res = []
|
1028
|
+
for year in range(2025, datetime.datetime.today().year + 1):
|
1029
|
+
df = self.download.data_to_df(
|
1030
|
+
db_name='推广数据2',
|
1031
|
+
table_name=f'超级直播_全站推广报表_{year}',
|
1032
|
+
start_date=start_date,
|
1033
|
+
end_date=end_date,
|
1034
|
+
projection=projection,
|
1035
|
+
)
|
1036
|
+
__res.append(df)
|
1037
|
+
df = pd.concat(__res, ignore_index=True)
|
1038
|
+
if len(df) == 0:
|
1039
|
+
return pd.DataFrame()
|
1040
|
+
# 这里的重命名要注意,因为 tg_cjzb 函数还要重命名一次,注意改为 tg_cjzb 命名前的列名
|
1041
|
+
df.rename(columns={
|
1042
|
+
'全站花费': '花费',
|
1043
|
+
'全站观看次数': '观看次数',
|
1044
|
+
'全站宝贝点击量': '点击量',
|
1045
|
+
'全站成交金额': '总成交金额',
|
1046
|
+
'全站成交笔数': '总成交笔数'
|
1047
|
+
}, inplace=True)
|
1048
|
+
return df
|
1049
|
+
|
1050
|
+
|
1014
1051
|
@try_except
|
1015
1052
|
def tg_cjzb(self, db_name='聚合数据', table_name='天猫_超级直播', is_maximize=True):
|
1016
1053
|
start_date, end_date = self.months_data(num=self.months)
|
@@ -1042,6 +1079,13 @@ class MysqlDatasQuery:
|
|
1042
1079
|
)
|
1043
1080
|
__res.append(df)
|
1044
1081
|
df = pd.concat(__res, ignore_index=True)
|
1082
|
+
cjzb_qzt = self.tg_cjzb_qzt(is_maximize=True)
|
1083
|
+
if len(cjzb_qzt) > 0:
|
1084
|
+
for col in df.columns.tolist():
|
1085
|
+
if col not in cjzb_qzt.columns.tolist():
|
1086
|
+
cjzb_qzt[col] = 0
|
1087
|
+
df = pd.concat([df, cjzb_qzt], ignore_index=True)
|
1088
|
+
|
1045
1089
|
df.rename(columns={
|
1046
1090
|
'观看次数': '观看次数',
|
1047
1091
|
'总购物车数': '加购量',
|
@@ -1062,6 +1106,7 @@ class MysqlDatasQuery:
|
|
1062
1106
|
'观看次数': 'int64',
|
1063
1107
|
}, errors='raise')
|
1064
1108
|
df = df[df['花费'] > 0]
|
1109
|
+
df['日期'] = pd.to_datetime(df['日期'], format='%Y-%m-%d', errors='ignore') # 转换日期列
|
1065
1110
|
if is_maximize:
|
1066
1111
|
df = df.groupby(['日期', '店铺名称', '营销场景', '人群名字', '计划名字', '花费', '观看次数'],
|
1067
1112
|
as_index=False).agg(
|
@@ -1121,6 +1166,7 @@ class MysqlDatasQuery:
|
|
1121
1166
|
max_date = df['日期'].max()
|
1122
1167
|
now = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
|
1123
1168
|
logger.info(f'{now} 正在更新: mysql ({host}:{port}) {db_name}/{table_name} -> {min_date}~{max_date}')
|
1169
|
+
|
1124
1170
|
m_engine.df_to_mysql(
|
1125
1171
|
df=df,
|
1126
1172
|
db_name=db_name,
|
@@ -3859,10 +3905,14 @@ def test():
|
|
3859
3905
|
sdq.spph(db_name='聚合数据', table_name='天猫_商品排行')
|
3860
3906
|
|
3861
3907
|
if __name__ == '__main__':
|
3862
|
-
main(
|
3863
|
-
|
3864
|
-
|
3865
|
-
)
|
3908
|
+
# main(
|
3909
|
+
# days=150, # 清理聚合数据的日期长度
|
3910
|
+
# months=3 # 生成聚合数据的长度
|
3911
|
+
# )
|
3912
|
+
|
3913
|
+
sdq = MysqlDatasQuery() # 实例化数据处理类
|
3914
|
+
sdq.months = 2
|
3915
|
+
sdq.tg_cjzb(db_name='聚合数据', table_name='天猫_超级直播')
|
3866
3916
|
|
3867
3917
|
|
3868
3918
|
|
mdbq/config/config.py
CHANGED
@@ -31,7 +31,7 @@ def write_config(file_path, rewrite):
|
|
31
31
|
"""
|
32
32
|
更新配置文件中的键值对,保留注释和其他内容,修复等号空格问题
|
33
33
|
示例:
|
34
|
-
write_config('spd.
|
34
|
+
write_config('spd.txt', {'is_spider': True})
|
35
35
|
"""
|
36
36
|
# 读取所有行到内存
|
37
37
|
try:
|
@@ -89,7 +89,7 @@ def write_config(file_path, rewrite):
|
|
89
89
|
|
90
90
|
|
91
91
|
if __name__ == '__main__':
|
92
|
-
res = read_config('/Users/xigua/数据中心2/spider/spd.
|
92
|
+
res = read_config('/Users/xigua/数据中心2/spider/spd.txt')
|
93
93
|
print(res)
|
94
|
-
# write_config('spd.
|
94
|
+
# write_config('spd.txt', {'is_spider': False})
|
95
95
|
|
@@ -46,7 +46,7 @@ upload_path = os.path.join(D_PATH, '数据上传中心') # 此目录位于下
|
|
46
46
|
if not os.path.exists(upload_path): # 数据中心根目录
|
47
47
|
os.makedirs(upload_path)
|
48
48
|
|
49
|
-
content = config.read_config(file_path=os.path.join(os.path.realpath(os.path.dirname(sys.argv[0])), 'spd.
|
49
|
+
content = config.read_config(file_path=os.path.join(os.path.realpath(os.path.dirname(sys.argv[0])), 'spd.txt'))
|
50
50
|
username, password, host, port = content['username'], content['password'], content['host'], content['port']
|
51
51
|
m_engine = mysql.MysqlUpload(username=username, password=password, host=host, port=port, charset='utf8mb4')
|
52
52
|
|
@@ -1,11 +1,17 @@
|
|
1
|
-
Metadata-Version: 2.
|
1
|
+
Metadata-Version: 2.2
|
2
2
|
Name: mdbq
|
3
|
-
Version: 3.7.
|
3
|
+
Version: 3.7.23
|
4
4
|
Home-page: https://pypi.org/project/mdbq
|
5
5
|
Author: xigua,
|
6
6
|
Author-email: 2587125111@qq.com
|
7
7
|
License: MIT
|
8
8
|
Requires-Python: >=3.6
|
9
|
+
Dynamic: author
|
10
|
+
Dynamic: author-email
|
11
|
+
Dynamic: description
|
12
|
+
Dynamic: home-page
|
13
|
+
Dynamic: license
|
14
|
+
Dynamic: requires-python
|
9
15
|
|
10
16
|
|
11
17
|
世界上最庄严的问题:我能做什么好事?
|
@@ -2,14 +2,11 @@ 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
4
|
mdbq/aggregation/optimize_data_bak.py,sha256=wB7prQdZAHyjzXH9V8g8X_JBMdvCCUITN1hVwK72Tdg,952
|
5
|
-
mdbq/aggregation/query_data.py,sha256=
|
5
|
+
mdbq/aggregation/query_data.py,sha256=wOngHgsU7nFiz6PkrXz0eb5g4m4nc5m4_yJslR5XOWk,176294
|
6
6
|
mdbq/bdup/__init__.py,sha256=AkhsGk81SkG1c8FqDH5tRq-8MZmFobVbN60DTyukYTY,28
|
7
7
|
mdbq/bdup/bdup.py,sha256=hJs815hGFwm_X5bP2i9XugG2w2ZY_F0n3-Q0hVpIPPw,4892
|
8
8
|
mdbq/config/__init__.py,sha256=jso1oHcy6cJEfa7udS_9uO5X6kZLoPBF8l3wCYmr5dM,18
|
9
|
-
mdbq/config/config.py,sha256=
|
10
|
-
mdbq/config/default_bak.py,sha256=pOBmlxmGzmK8XYstv_qwE4vDwJmytEmVIYE0bDnCXOs,2143
|
11
|
-
mdbq/config/myconfig_bak.py,sha256=5gg3B8fnDx2_a5I3kfPLXx7xePqZwfb3ohj6iMVhplc,1022
|
12
|
-
mdbq/config/products_bak.py,sha256=kWN3NWp9uT6D0M4Vw33yqOo9Tb98hEO8-X-llRjoY8M,5731
|
9
|
+
mdbq/config/config.py,sha256=eaTfrfXQ65xLqjr5I8-HkZd_jEY1JkGinEgv3TSLeoQ,3170
|
13
10
|
mdbq/config/set_support.py,sha256=7C7NFy7Em_uC7lig54qQlIlKG_AJeMCskxzK87anGkM,462
|
14
11
|
mdbq/dataframe/__init__.py,sha256=2HtCN8AdRj53teXDqzysC1h8aPL-mMFy561ESmhehGQ,22
|
15
12
|
mdbq/dataframe/converter.py,sha256=lETYhT7KXlWzWwqguqhk6vI6kj4rnOBEW1lhqKy2Abc,5035
|
@@ -22,7 +19,7 @@ mdbq/mysql/mysql.py,sha256=UoZPVyrgDp5L8-i0jVptkal9G64oNrdhNwa-xpp8txo,95127
|
|
22
19
|
mdbq/mysql/s_query.py,sha256=09Dp7DrVXui6dAI6zFDfrsUOdjPblF_oYUpgqbZMhXg,8757
|
23
20
|
mdbq/mysql/year_month_day.py,sha256=VgewoE2pJxK7ErjfviL_SMTN77ki8GVbTUcao3vFUCE,1523
|
24
21
|
mdbq/other/__init__.py,sha256=jso1oHcy6cJEfa7udS_9uO5X6kZLoPBF8l3wCYmr5dM,18
|
25
|
-
mdbq/other/download_sku_picture.py,sha256
|
22
|
+
mdbq/other/download_sku_picture.py,sha256=-rfWRmmsNjj0AyPZHT_xAaIaoMqcCyeppU6j81XFQYw,44798
|
26
23
|
mdbq/other/porxy.py,sha256=UHfgEyXugogvXgsG68a7QouUCKaohTKKkI4RN-kYSdQ,4961
|
27
24
|
mdbq/other/pov_city.py,sha256=AEOmCOzOwyjHi9LLZWPKi6DUuSC-_M163664I52u9qw,21050
|
28
25
|
mdbq/other/ua_sj.py,sha256=JuVYzc_5QZ9s_oQSrTHVKkQv4S_7-CWx4oIKOARn_9U,22178
|
@@ -34,7 +31,7 @@ mdbq/redis/__init__.py,sha256=YtgBlVSMDphtpwYX248wGge1x-Ex_mMufz4-8W0XRmA,12
|
|
34
31
|
mdbq/redis/getredis.py,sha256=1pTga2iINx0NV2ffl0D-aspZhrZMDQR8SpohAv1acoo,24076
|
35
32
|
mdbq/spider/__init__.py,sha256=RBMFXGy_jd1HXZhngB2T2XTvJqki8P_Fr-pBcwijnew,18
|
36
33
|
mdbq/spider/aikucun.py,sha256=o_QwFWbD6O2F56k6bwnpVV55EcdFCyes05ON7iu9TrA,21882
|
37
|
-
mdbq-3.7.
|
38
|
-
mdbq-3.7.
|
39
|
-
mdbq-3.7.
|
40
|
-
mdbq-3.7.
|
34
|
+
mdbq-3.7.23.dist-info/METADATA,sha256=fdkmDNycOfqYZ-1Yex9emViiRWSFz_fxEg4EF8aLS_I,364
|
35
|
+
mdbq-3.7.23.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
|
36
|
+
mdbq-3.7.23.dist-info/top_level.txt,sha256=2FQ-uLnCSB-OwFiWntzmwosW3X2Xqsg0ewh1axsaylA,5
|
37
|
+
mdbq-3.7.23.dist-info/RECORD,,
|
mdbq/config/default_bak.py
DELETED
@@ -1,58 +0,0 @@
|
|
1
|
-
# -*- coding: UTF-8 –*-
|
2
|
-
import os
|
3
|
-
import sys
|
4
|
-
import json
|
5
|
-
import socket
|
6
|
-
import logging
|
7
|
-
from mdbq.mysql import mysql
|
8
|
-
|
9
|
-
support_path = os.path.join(os.path.realpath(os.path.dirname(sys.argv[0])), 'support')
|
10
|
-
logger = logging.getLogger(__name__)
|
11
|
-
|
12
|
-
|
13
|
-
def return_default_host():
|
14
|
-
targe_host = socket.gethostname()
|
15
|
-
hostname = 'xigua_lx' # 正常情况下 spider_tg 只会在 xigua_lx 或者 xigua1 运行,且都指向主库
|
16
|
-
local = 'remoto'
|
17
|
-
|
18
|
-
if targe_host == 'xigua_lx':
|
19
|
-
local = 'local' # 直接指向局域网地址
|
20
|
-
elif targe_host in ['localhost.localdomain', 'xigua1']:
|
21
|
-
targe_host = 'xigua1' # 修正 Linux 系统用户名
|
22
|
-
local = 'local' # 直接指向局域网地址
|
23
|
-
elif targe_host == 'MacBookPro':
|
24
|
-
local = 'local' # 直接指向局域网地址
|
25
|
-
return targe_host, hostname, local
|
26
|
-
|
27
|
-
|
28
|
-
def get_mysql_engine(platform='Windows', hostname='xigua_lx', sql='mysql', local='remoto', config_file=None):
|
29
|
-
if not config_file:
|
30
|
-
config_file = os.path.join(support_path, 'my_config.txt')
|
31
|
-
if not os.path.isfile(config_file):
|
32
|
-
print(f'缺少配置文件,无法读取配置文件: {config_file}')
|
33
|
-
return None
|
34
|
-
|
35
|
-
if socket.gethostname() == 'xigua_lx':
|
36
|
-
local = 'local'
|
37
|
-
|
38
|
-
with open(config_file, 'r', encoding='utf-8') as f:
|
39
|
-
conf = json.load(f)
|
40
|
-
conf_data = conf[platform][hostname][sql][local]
|
41
|
-
username, password, host, port = conf_data['username'], conf_data['password'], conf_data['host'], conf_data['port']
|
42
|
-
_engine = mysql.MysqlUpload(username=username, password=password, host=host, port=port, charset='utf8mb4')
|
43
|
-
return _engine, username, password, host, port
|
44
|
-
|
45
|
-
|
46
|
-
def write_back_bak(datas):
|
47
|
-
""" 将数据写回本地 """
|
48
|
-
if not os.path.isdir(support_path):
|
49
|
-
print(f'缺少配置文件,无法读取配置文件: {file}')
|
50
|
-
return
|
51
|
-
file = os.path.join(support_path, 'my_config.txt')
|
52
|
-
with open(file, 'w+', encoding='utf-8') as f:
|
53
|
-
json.dump(datas, f, ensure_ascii=False, sort_keys=False, indent=4)
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
if __name__ == '__main__':
|
58
|
-
pass
|
mdbq/config/myconfig_bak.py
DELETED
@@ -1,34 +0,0 @@
|
|
1
|
-
# -*- coding: UTF-8 –*-
|
2
|
-
import os
|
3
|
-
import sys
|
4
|
-
import json
|
5
|
-
# from mdbq.config import set_support
|
6
|
-
"""
|
7
|
-
用来读取本地配置文件
|
8
|
-
"""
|
9
|
-
support_path = os.path.join(os.path.realpath(os.path.dirname(sys.argv[0])), 'support')
|
10
|
-
|
11
|
-
|
12
|
-
def main():
|
13
|
-
# support_path = set_support.SetSupport(dirname='support').dirname
|
14
|
-
file = os.path.join(support_path, 'my_config.txt')
|
15
|
-
if not os.path.isfile(file):
|
16
|
-
print(f'缺少配置文件,无法读取配置文件: {file}')
|
17
|
-
return
|
18
|
-
with open(file, 'r', encoding='utf-8') as f:
|
19
|
-
config_datas = json.load(f)
|
20
|
-
return config_datas
|
21
|
-
|
22
|
-
|
23
|
-
def write_back(datas):
|
24
|
-
""" 将数据写回本地 all-datas.py 调用 """
|
25
|
-
# support_path = set_support.SetSupport(dirname='support').dirname
|
26
|
-
file = os.path.join(support_path, 'my_config.txt')
|
27
|
-
with open(file, 'w+', encoding='utf-8') as f:
|
28
|
-
json.dump(datas, f, ensure_ascii=False, sort_keys=False, indent=4)
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
if __name__ == '__main__':
|
33
|
-
d = main()
|
34
|
-
print(d)
|
mdbq/config/products_bak.py
DELETED
@@ -1,159 +0,0 @@
|
|
1
|
-
# -*- coding: UTF-8 –*-
|
2
|
-
import json
|
3
|
-
import os
|
4
|
-
import platform
|
5
|
-
import getpass
|
6
|
-
import pandas as pd
|
7
|
-
from mdbq.mysql import mysql
|
8
|
-
from mdbq.config import default
|
9
|
-
from numpy.ma.core import product
|
10
|
-
|
11
|
-
"""
|
12
|
-
天猫货品年份基准对照
|
13
|
-
用于聚合数据,通过此数据表进一步可确定商品上架年月
|
14
|
-
"""
|
15
|
-
targe_host, hostname, local = default.return_default_host()
|
16
|
-
m_engine, username, password, host, port = default.get_mysql_engine(platform='Windows', hostname=hostname, sql='mysql', local=local, config_file=None)
|
17
|
-
if not username:
|
18
|
-
print(f'找不到主机1:')
|
19
|
-
|
20
|
-
|
21
|
-
class Products:
|
22
|
-
def __init__(self):
|
23
|
-
self.datas = []
|
24
|
-
|
25
|
-
def update_my_datas(self):
|
26
|
-
my_datas = [
|
27
|
-
{
|
28
|
-
'平台': '天猫', '商品id': '848929365000', '上市年份': '2024年11月'
|
29
|
-
},
|
30
|
-
{
|
31
|
-
'平台': '天猫', '商品id': '840499705000', '上市年份': '2024年10月'
|
32
|
-
},
|
33
|
-
{
|
34
|
-
'平台': '天猫', '商品id': '830789680000', '上市年份': '2024年9月'
|
35
|
-
},
|
36
|
-
{
|
37
|
-
'平台': '天猫', '商品id': '822020840000', '上市年份': '2024年8月'
|
38
|
-
},
|
39
|
-
{
|
40
|
-
'平台': '天猫', '商品id': '811000000000', '上市年份': '2024年7月'
|
41
|
-
},
|
42
|
-
{
|
43
|
-
'平台': '天猫', '商品id': '800000000000', '上市年份': '2024年6月'
|
44
|
-
},
|
45
|
-
{
|
46
|
-
'平台': '天猫', '商品id': '791359643000', '上市年份': '2024年5月'
|
47
|
-
},
|
48
|
-
{
|
49
|
-
'平台': '天猫', '商品id': '778971448000', '上市年份': '2024年4月'
|
50
|
-
},
|
51
|
-
{
|
52
|
-
'平台': '天猫', '商品id': '770576016800', '上市年份': '2024年3月'
|
53
|
-
},
|
54
|
-
{
|
55
|
-
'平台': '天猫', '商品id': '766115058400', '上市年份': '2024年2月'
|
56
|
-
},
|
57
|
-
{
|
58
|
-
'平台': '天猫', '商品id': '759478591100', '上市年份': '2024年1月'
|
59
|
-
},
|
60
|
-
{
|
61
|
-
'平台': '天猫', '商品id': '752770183000', '上市年份': '2023年12月'
|
62
|
-
},
|
63
|
-
{
|
64
|
-
'平台': '天猫', '商品id': '745123890000', '上市年份': '2023年11月'
|
65
|
-
},
|
66
|
-
{
|
67
|
-
'平台': '天猫', '商品id': '741000000000', '上市年份': '2023年10月'
|
68
|
-
},
|
69
|
-
{
|
70
|
-
'平台': '天猫', '商品id': '736841920000', '上市年份': '2023年9月'
|
71
|
-
},
|
72
|
-
{
|
73
|
-
'平台': '天猫', '商品id': '730800000000', '上市年份': '2023年8月'
|
74
|
-
},
|
75
|
-
{
|
76
|
-
'平台': '天猫', '商品id': '726939636000', '上市年份': '2023年7月'
|
77
|
-
},
|
78
|
-
{
|
79
|
-
'平台': '天猫', '商品id': '721366048000', '上市年份': '2023年6月'
|
80
|
-
},
|
81
|
-
{
|
82
|
-
'平台': '天猫', '商品id': '716130443000', '上市年份': '2023年5月'
|
83
|
-
},
|
84
|
-
{
|
85
|
-
'平台': '天猫', '商品id': '709824308000', '上市年份': '2023年4月'
|
86
|
-
},
|
87
|
-
{
|
88
|
-
'平台': '天猫', '商品id': '705440027000', '上市年份': '2023年3月'
|
89
|
-
},
|
90
|
-
{
|
91
|
-
'平台': '天猫', '商品id': '701096067900', '上市年份': '2023年2月'
|
92
|
-
},
|
93
|
-
{
|
94
|
-
'平台': '天猫', '商品id': '696017000000', '上市年份': '2023年1月'
|
95
|
-
},
|
96
|
-
{
|
97
|
-
'平台': '天猫', '商品id': '666510000000', '上市年份': '2022年货品'
|
98
|
-
},
|
99
|
-
{
|
100
|
-
'平台': '天猫', '商品id': '636010000000', '上市年份': '2021年货品'
|
101
|
-
},
|
102
|
-
{
|
103
|
-
'平台': '天猫', '商品id': '610485872286', '上市年份': '2020年货品'
|
104
|
-
},
|
105
|
-
{
|
106
|
-
'平台': '天猫', '商品id': '585066000000', '上市年份': '2019年货品'
|
107
|
-
},
|
108
|
-
{
|
109
|
-
'平台': '天猫', '商品id': '563237000000', '上市年份': '2018年货品'
|
110
|
-
},
|
111
|
-
{
|
112
|
-
'平台': '天猫', '商品id': '100', '上市年份': '历史悠久'
|
113
|
-
},
|
114
|
-
]
|
115
|
-
self.datas += my_datas
|
116
|
-
|
117
|
-
|
118
|
-
def to_mysql(self):
|
119
|
-
self.update_my_datas()
|
120
|
-
df = pd.DataFrame(self.datas)
|
121
|
-
m_engine = mysql.MysqlUpload(
|
122
|
-
username=username,
|
123
|
-
password=password,
|
124
|
-
host=host,
|
125
|
-
port=port,
|
126
|
-
)
|
127
|
-
m_engine.insert_many_dict(
|
128
|
-
db_name='属性设置3',
|
129
|
-
table_name='货品年份基准',
|
130
|
-
dict_data_list=df.to_dict(orient='records'),
|
131
|
-
# icm_update=['日期', '店铺名称', '宝贝id'], # 唯一组合键
|
132
|
-
unique_main_key=['商品id'],
|
133
|
-
set_typ={
|
134
|
-
'商品id': 'bigint',
|
135
|
-
'平台': 'varchar(100)',
|
136
|
-
'上市年份': 'varchar(100)',
|
137
|
-
},
|
138
|
-
)
|
139
|
-
|
140
|
-
def market_date(self, product_id: int):
|
141
|
-
try:
|
142
|
-
product_id = int(product_id)
|
143
|
-
except:
|
144
|
-
return
|
145
|
-
self.update_my_datas()
|
146
|
-
market_date = [item['上市年份'] for item in self.datas if product_id > int(item['商品id'])]
|
147
|
-
if market_date:
|
148
|
-
return market_date[0] # 返回上市年份
|
149
|
-
|
150
|
-
|
151
|
-
def main():
|
152
|
-
pass
|
153
|
-
|
154
|
-
|
155
|
-
if __name__ == '__main__':
|
156
|
-
product_id = '696017020186'
|
157
|
-
p = Products()
|
158
|
-
year = p.market_date(product_id=product_id)
|
159
|
-
print(f'{product_id}: {year}')
|
File without changes
|