mns-common 1.4.0.4__py3-none-any.whl → 1.4.0.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.
Potentially problematic release.
This version of mns-common might be problematic. Click here for more details.
- mns_common/component/tfp/stock_tfp_api.py +82 -12
- {mns_common-1.4.0.4.dist-info → mns_common-1.4.0.5.dist-info}/METADATA +1 -1
- {mns_common-1.4.0.4.dist-info → mns_common-1.4.0.5.dist-info}/RECORD +5 -5
- {mns_common-1.4.0.4.dist-info → mns_common-1.4.0.5.dist-info}/WHEEL +0 -0
- {mns_common-1.4.0.4.dist-info → mns_common-1.4.0.5.dist-info}/top_level.txt +0 -0
|
@@ -5,7 +5,6 @@ file_path = os.path.abspath(__file__)
|
|
|
5
5
|
end = file_path.index('mns') + 16
|
|
6
6
|
project_path = file_path[0:end]
|
|
7
7
|
sys.path.append(project_path)
|
|
8
|
-
import akshare as ak
|
|
9
8
|
import mns_common.utils.date_handle_util as date_handle_util
|
|
10
9
|
from loguru import logger
|
|
11
10
|
import mns_common.utils.data_frame_util as data_frame_util
|
|
@@ -15,20 +14,87 @@ import mns_common.constant.db_name_constant as db_name_constant
|
|
|
15
14
|
|
|
16
15
|
mongodb_util = MongodbUtil('27017')
|
|
17
16
|
|
|
17
|
+
"""
|
|
18
|
+
Date: 2024/4/29 15:00
|
|
19
|
+
Desc: 东方财富网-数据中心-特色数据-停复牌信息
|
|
20
|
+
https://data.eastmoney.com/tfpxx/
|
|
21
|
+
"""
|
|
22
|
+
|
|
23
|
+
import pandas as pd
|
|
24
|
+
import requests
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
def stock_tfp_em(date: str = "20240426") -> pd.DataFrame:
|
|
28
|
+
"""
|
|
29
|
+
东方财富网-数据中心-特色数据-停复牌信息
|
|
30
|
+
https://data.eastmoney.com/tfpxx/
|
|
31
|
+
:param date: specific date as "2020-03-19"
|
|
32
|
+
:type date: str
|
|
33
|
+
:return: 停复牌信息表
|
|
34
|
+
:rtype: pandas.DataFrame
|
|
35
|
+
"""
|
|
36
|
+
url = "https://datacenter-web.eastmoney.com/api/data/v1/get"
|
|
37
|
+
params = {
|
|
38
|
+
"sortColumns": "SUSPEND_START_DATE",
|
|
39
|
+
"sortTypes": "-1",
|
|
40
|
+
"pageSize": "500",
|
|
41
|
+
"pageNumber": "1",
|
|
42
|
+
"reportName": "RPT_CUSTOM_SUSPEND_DATA_INTERFACE",
|
|
43
|
+
"columns": "ALL",
|
|
44
|
+
"source": "WEB",
|
|
45
|
+
"client": "WEB",
|
|
46
|
+
"filter": f"""(MARKET="全部")(DATETIME='{"-".join([date[:4], date[4:6], date[6:]])}')""",
|
|
47
|
+
}
|
|
48
|
+
r = requests.get(url, params=params)
|
|
49
|
+
data_json = r.json()
|
|
50
|
+
total_page = data_json["result"]["pages"]
|
|
51
|
+
big_df = pd.DataFrame()
|
|
52
|
+
for page in range(1, total_page + 1):
|
|
53
|
+
params.update({"pageNumber": page})
|
|
54
|
+
r = requests.get(url, params=params)
|
|
55
|
+
data_json = r.json()
|
|
56
|
+
temp_df = pd.DataFrame(data_json["result"]["data"])
|
|
57
|
+
big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
|
|
58
|
+
|
|
59
|
+
big_df.reset_index(inplace=True)
|
|
60
|
+
|
|
61
|
+
big_df["SUSPEND_START_TIME"] = pd.to_datetime(big_df["SUSPEND_START_TIME"], errors="coerce").dt.date
|
|
62
|
+
big_df["SUSPEND_END_TIME"] = pd.to_datetime(
|
|
63
|
+
big_df["SUSPEND_END_TIME"], errors="coerce"
|
|
64
|
+
).dt.date
|
|
65
|
+
|
|
66
|
+
big_df["SUSPEND_START_DATE"] = pd.to_datetime(
|
|
67
|
+
big_df["SUSPEND_START_DATE"], errors="coerce"
|
|
68
|
+
).dt.date
|
|
69
|
+
big_df["PREDICT_RESUME_DATE"] = pd.to_datetime(
|
|
70
|
+
big_df["PREDICT_RESUME_DATE"], errors="coerce"
|
|
71
|
+
).dt.date
|
|
72
|
+
|
|
73
|
+
big_df = big_df[['index', 'SECURITY_CODE', 'SECURITY_NAME_ABBR', 'SUSPEND_START_TIME',
|
|
74
|
+
'SUSPEND_END_TIME', 'SUSPEND_EXPIRE', 'SUSPEND_REASON', 'TRADE_MARKET',
|
|
75
|
+
'SUSPEND_START_DATE',
|
|
76
|
+
'PREDICT_RESUME_DATE'
|
|
77
|
+
]]
|
|
78
|
+
|
|
79
|
+
return big_df
|
|
80
|
+
|
|
18
81
|
|
|
19
82
|
def get_stock_tfp_by_day(str_day):
|
|
20
|
-
stock_tfp_em_df =
|
|
83
|
+
stock_tfp_em_df = stock_tfp_em(date_handle_util.no_slash_date(str_day))
|
|
21
84
|
stock_tfp_em_df = stock_tfp_em_df.rename(
|
|
22
|
-
columns={'
|
|
23
|
-
'
|
|
24
|
-
'
|
|
25
|
-
'
|
|
26
|
-
'
|
|
27
|
-
|
|
28
|
-
'
|
|
29
|
-
'
|
|
30
|
-
|
|
31
|
-
'
|
|
85
|
+
columns={'index': 'index',
|
|
86
|
+
'SECURITY_CODE': 'symbol',
|
|
87
|
+
'SECURITY_NAME_ABBR': 'name',
|
|
88
|
+
'SUSPEND_START_TIME': 'sus_begin_time',
|
|
89
|
+
'SUSPEND_END_TIME': 'sus_end_time',
|
|
90
|
+
|
|
91
|
+
'SUSPEND_START_DATE': 'sus_begin_date',
|
|
92
|
+
'PREDICT_RESUME_DATE': 'resume_time',
|
|
93
|
+
|
|
94
|
+
'SUSPEND_EXPIRE': 'sus_period',
|
|
95
|
+
'SUSPEND_REASON': 'sus_reason',
|
|
96
|
+
'TRADE_MARKET': 'market',
|
|
97
|
+
|
|
32
98
|
})
|
|
33
99
|
return stock_tfp_em_df
|
|
34
100
|
|
|
@@ -60,3 +126,7 @@ def get_stock_tfp_symbol_from_db(str_day):
|
|
|
60
126
|
except BaseException as e:
|
|
61
127
|
logger.error("获取停牌信息异常:{}", e)
|
|
62
128
|
return ['666666']
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
if __name__ == '__main__':
|
|
132
|
+
get_stock_tfp_symbol_list_by_day('2025-06-21')
|
|
@@ -126,7 +126,7 @@ mns_common/component/self_choose/self_choose_service_api.py,sha256=v-ThYn5OMva-c
|
|
|
126
126
|
mns_common/component/task/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
|
|
127
127
|
mns_common/component/task/real_time_data_sync_check.py,sha256=Ss_7XRGCYPG5fwPLove2wtI-AF5r0x2S06DddaxyfY4,3333
|
|
128
128
|
mns_common/component/tfp/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
|
|
129
|
-
mns_common/component/tfp/stock_tfp_api.py,sha256=
|
|
129
|
+
mns_common/component/tfp/stock_tfp_api.py,sha256=_iScNNUmzEXeZ32PFQ_bFs3CErQk_188ESS3hUgCH7E,4455
|
|
130
130
|
mns_common/component/trade_date/__init__.py,sha256=2U9DiKslxsWwLLEcZKjS8UiQPN1QgALvnK3HiJNIZE0,163
|
|
131
131
|
mns_common/component/trade_date/trade_date_common_service_api.py,sha256=PHrcUjgLdNKbqyMGot0poKtiLBys_wRZoheMhPJE-U4,3032
|
|
132
132
|
mns_common/component/zt/__init__.py,sha256=2U9DiKslxsWwLLEcZKjS8UiQPN1QgALvnK3HiJNIZE0,163
|
|
@@ -152,7 +152,7 @@ mns_common/utils/date_handle_util.py,sha256=XS-MyA8_7k35LOCFAYOHgVcVkMft_Kc4Wa9U
|
|
|
152
152
|
mns_common/utils/db_util.py,sha256=hSmfNAN4vEeEaUva6_cicZEhb2jSnib-Gvk2reke1vc,2590
|
|
153
153
|
mns_common/utils/file_util.py,sha256=egWu6PenGPRp_ixrNTHKarT4dAnOT6FETR82EHUZJnQ,1042
|
|
154
154
|
mns_common/utils/ip_util.py,sha256=UTcYfz_uytB__6nlBf7T-izuI7hi4XdB6ET0sJgEel4,969
|
|
155
|
-
mns_common-1.4.0.
|
|
156
|
-
mns_common-1.4.0.
|
|
157
|
-
mns_common-1.4.0.
|
|
158
|
-
mns_common-1.4.0.
|
|
155
|
+
mns_common-1.4.0.5.dist-info/METADATA,sha256=uMWuC2SAXQOVQLx3eeukMndlQnWlGAAuQ7-9wHIsQcs,61
|
|
156
|
+
mns_common-1.4.0.5.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
|
|
157
|
+
mns_common-1.4.0.5.dist-info/top_level.txt,sha256=ZC58kAR-8Hvc6U2xhYNBNLAh3mb6sZazbdj5nZpvEkQ,11
|
|
158
|
+
mns_common-1.4.0.5.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|