akshare 1.15.12__py3-none-any.whl → 1.15.14__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 akshare might be problematic. Click here for more details.
- akshare/__init__.py +4 -1
- akshare/economic/macro_bank.py +79 -653
- akshare/index/index_stock_zh_csindex.py +6 -4
- akshare/stock_feature/stock_inner_trade_xq.py +39 -31
- akshare/stock_fundamental/stock_finance_ths.py +53 -1
- {akshare-1.15.12.dist-info → akshare-1.15.14.dist-info}/METADATA +5 -2
- {akshare-1.15.12.dist-info → akshare-1.15.14.dist-info}/RECORD +10 -10
- {akshare-1.15.12.dist-info → akshare-1.15.14.dist-info}/LICENSE +0 -0
- {akshare-1.15.12.dist-info → akshare-1.15.14.dist-info}/WHEEL +0 -0
- {akshare-1.15.12.dist-info → akshare-1.15.14.dist-info}/top_level.txt +0 -0
akshare/__init__.py
CHANGED
|
@@ -2922,9 +2922,11 @@ amac_manager_cancelled_info # 中国证券投资基金业协会-信息公示-诚
|
|
|
2922
2922
|
1.15.10 add: add volatility_yz_rv indicator
|
|
2923
2923
|
1.15.11 fix: fix stock_individual_spot_xq indicator
|
|
2924
2924
|
1.15.12 fix: fix stock_shareholder_change_ths indicator
|
|
2925
|
+
1.15.13 fix: fix stock_inner_trade_xq indicator
|
|
2926
|
+
1.15.14 fix: fix macro_bank_usa_interest_rate indicator
|
|
2925
2927
|
"""
|
|
2926
2928
|
|
|
2927
|
-
__version__ = "1.15.
|
|
2929
|
+
__version__ = "1.15.14"
|
|
2928
2930
|
__author__ = "AKFamily"
|
|
2929
2931
|
|
|
2930
2932
|
import sys
|
|
@@ -3206,6 +3208,7 @@ from akshare.stock_fundamental.stock_finance_ths import (
|
|
|
3206
3208
|
stock_financial_debt_ths,
|
|
3207
3209
|
stock_financial_benefit_ths,
|
|
3208
3210
|
stock_financial_cash_ths,
|
|
3211
|
+
stock_management_change_ths,
|
|
3209
3212
|
stock_shareholder_change_ths,
|
|
3210
3213
|
)
|
|
3211
3214
|
|
akshare/economic/macro_bank.py
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env python
|
|
2
2
|
# -*- coding:utf-8 -*-
|
|
3
3
|
"""
|
|
4
|
-
Date:
|
|
4
|
+
Date: 2024/11/5 17:11
|
|
5
5
|
Desc: 金十数据中心-经济指标-央行利率-主要央行利率
|
|
6
6
|
https://datacenter.jin10.com/economic
|
|
7
7
|
输出数据格式为 float64
|
|
@@ -17,6 +17,7 @@ https://datacenter.jin10.com/economic
|
|
|
17
17
|
印度央行决议报告
|
|
18
18
|
巴西央行决议报告
|
|
19
19
|
"""
|
|
20
|
+
|
|
20
21
|
import datetime
|
|
21
22
|
import time
|
|
22
23
|
|
|
@@ -24,80 +25,87 @@ import pandas as pd
|
|
|
24
25
|
import requests
|
|
25
26
|
|
|
26
27
|
|
|
27
|
-
|
|
28
|
-
def macro_bank_usa_interest_rate() -> pd.DataFrame:
|
|
28
|
+
def __get_interest_rate_data(attr_id: str, name: str = "利率") -> pd.DataFrame:
|
|
29
29
|
"""
|
|
30
|
-
|
|
30
|
+
利率决议报告公共函数
|
|
31
31
|
https://datacenter.jin10.com/reportType/dc_usa_interest_rate_decision
|
|
32
|
-
|
|
33
|
-
:
|
|
32
|
+
:param attr_id: 内置属性
|
|
33
|
+
:type attr_id: str
|
|
34
|
+
:param name: 利率报告名称
|
|
35
|
+
:type name: str
|
|
36
|
+
:return: 利率决议报告数据
|
|
34
37
|
:rtype: pandas.Series
|
|
35
38
|
"""
|
|
36
39
|
t = time.time()
|
|
37
40
|
headers = {
|
|
38
|
-
"
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
"sec-fetch-dest": "empty",
|
|
45
|
-
"sec-fetch-mode": "cors",
|
|
46
|
-
"sec-fetch-site": "same-site",
|
|
47
|
-
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36",
|
|
41
|
+
"Accept": "*/*",
|
|
42
|
+
"Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8",
|
|
43
|
+
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
|
|
44
|
+
"Chrome/120.0.0.0 Safari/537.36",
|
|
45
|
+
"Origin": "https://datacenter.jin10.com",
|
|
46
|
+
"Referer": "https://datacenter.jin10.com/",
|
|
48
47
|
"x-app-id": "rU6QIu7JHe2gOUeR",
|
|
49
|
-
"x-csrf-token": "",
|
|
50
48
|
"x-version": "1.0.0",
|
|
51
49
|
}
|
|
52
|
-
|
|
50
|
+
base_url = "https://datacenter-api.jin10.com/reports/list_v2"
|
|
53
51
|
params = {
|
|
54
52
|
"max_date": "",
|
|
55
53
|
"category": "ec",
|
|
56
|
-
"attr_id":
|
|
54
|
+
"attr_id": attr_id,
|
|
57
55
|
"_": str(int(round(t * 1000))),
|
|
58
56
|
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
break
|
|
65
|
-
temp_df = pd.DataFrame(data_json["data"]["values"])
|
|
66
|
-
big_df = pd.concat([big_df, temp_df], ignore_index=True)
|
|
67
|
-
last_date_str = temp_df.iat[-1, 0]
|
|
68
|
-
last_date_str = (
|
|
69
|
-
(
|
|
70
|
-
datetime.datetime.strptime(last_date_str, "%Y-%m-%d")
|
|
71
|
-
- datetime.timedelta(days=1)
|
|
57
|
+
interest_rate_data = []
|
|
58
|
+
try:
|
|
59
|
+
while True:
|
|
60
|
+
response = requests.get(
|
|
61
|
+
url=base_url, params=params, headers=headers, timeout=10
|
|
72
62
|
)
|
|
73
|
-
.
|
|
74
|
-
.
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
63
|
+
data = response.json()
|
|
64
|
+
if not data.get("data", {}).get("values"):
|
|
65
|
+
break
|
|
66
|
+
interest_rate_data.extend(data["data"]["values"])
|
|
67
|
+
|
|
68
|
+
# Update max_date for pagination
|
|
69
|
+
last_date = data["data"]["values"][-1][0]
|
|
70
|
+
next_date = (
|
|
71
|
+
datetime.datetime.strptime(last_date, "%Y-%m-%d").date()
|
|
72
|
+
- datetime.timedelta(days=1)
|
|
73
|
+
).isoformat()
|
|
74
|
+
params["max_date"] = next_date
|
|
75
|
+
|
|
76
|
+
except requests.exceptions.RequestException as e:
|
|
77
|
+
print(f"Error fetching data: {e}")
|
|
78
|
+
return pd.DataFrame()
|
|
79
|
+
|
|
80
|
+
# Convert to DataFrame
|
|
81
|
+
big_df = pd.DataFrame(interest_rate_data)
|
|
82
|
+
|
|
83
|
+
if big_df.empty:
|
|
84
|
+
return pd.DataFrame()
|
|
85
|
+
|
|
86
|
+
# Process DataFrame
|
|
87
|
+
big_df["商品"] = name
|
|
88
|
+
big_df.columns = ["日期", "今值", "预测值", "前值", "商品"]
|
|
89
|
+
big_df = big_df[["商品", "日期", "今值", "预测值", "前值"]]
|
|
90
|
+
|
|
91
|
+
# Convert data types
|
|
94
92
|
big_df["日期"] = pd.to_datetime(big_df["日期"]).dt.date
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
big_df.reset_index(
|
|
100
|
-
|
|
93
|
+
numeric_columns = ["今值", "预测值", "前值"]
|
|
94
|
+
for col in numeric_columns:
|
|
95
|
+
big_df[col] = pd.to_numeric(big_df[col], errors="coerce")
|
|
96
|
+
|
|
97
|
+
return big_df.sort_values("日期").reset_index(drop=True)
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
# 金十数据中心-经济指标-央行利率-主要央行利率-美联储利率决议报告
|
|
101
|
+
def macro_bank_usa_interest_rate() -> pd.DataFrame:
|
|
102
|
+
"""
|
|
103
|
+
美联储利率决议报告, 数据区间从 19820927-至今
|
|
104
|
+
https://datacenter.jin10.com/reportType/dc_usa_interest_rate_decision
|
|
105
|
+
:return: 美联储利率决议报告-今值(%)
|
|
106
|
+
:rtype: pandas.Series
|
|
107
|
+
"""
|
|
108
|
+
return __get_interest_rate_data(attr_id="24", name="美联储利率决议报告")
|
|
101
109
|
|
|
102
110
|
|
|
103
111
|
# 金十数据中心-经济指标-央行利率-主要央行利率-欧洲央行决议报告
|
|
@@ -109,71 +117,7 @@ def macro_bank_euro_interest_rate() -> pd.DataFrame:
|
|
|
109
117
|
:return: 欧洲央行决议报告-今值(%)
|
|
110
118
|
:rtype: pandas.Series
|
|
111
119
|
"""
|
|
112
|
-
|
|
113
|
-
headers = {
|
|
114
|
-
"accept": "*/*",
|
|
115
|
-
"accept-encoding": "gzip, deflate, br",
|
|
116
|
-
"accept-language": "zh-CN,zh;q=0.9,en;q=0.8",
|
|
117
|
-
"cache-control": "no-cache",
|
|
118
|
-
"origin": "https://datacenter.jin10.com",
|
|
119
|
-
"pragma": "no-cache",
|
|
120
|
-
"sec-fetch-dest": "empty",
|
|
121
|
-
"sec-fetch-mode": "cors",
|
|
122
|
-
"sec-fetch-site": "same-site",
|
|
123
|
-
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36",
|
|
124
|
-
"x-app-id": "rU6QIu7JHe2gOUeR",
|
|
125
|
-
"x-csrf-token": "",
|
|
126
|
-
"x-version": "1.0.0",
|
|
127
|
-
}
|
|
128
|
-
url = "https://datacenter-api.jin10.com/reports/list_v2"
|
|
129
|
-
params = {
|
|
130
|
-
"max_date": "",
|
|
131
|
-
"category": "ec",
|
|
132
|
-
"attr_id": "21",
|
|
133
|
-
"_": str(int(round(t * 1000))),
|
|
134
|
-
}
|
|
135
|
-
big_df = pd.DataFrame()
|
|
136
|
-
while True:
|
|
137
|
-
r = requests.get(url, params=params, headers=headers)
|
|
138
|
-
data_json = r.json()
|
|
139
|
-
if not data_json["data"]["values"]:
|
|
140
|
-
break
|
|
141
|
-
temp_df = pd.DataFrame(data_json["data"]["values"])
|
|
142
|
-
big_df = pd.concat([big_df, temp_df], ignore_index=True)
|
|
143
|
-
last_date_str = temp_df.iat[-1, 0]
|
|
144
|
-
last_date_str = (
|
|
145
|
-
(
|
|
146
|
-
datetime.datetime.strptime(last_date_str, "%Y-%m-%d")
|
|
147
|
-
- datetime.timedelta(days=1)
|
|
148
|
-
)
|
|
149
|
-
.date()
|
|
150
|
-
.isoformat()
|
|
151
|
-
)
|
|
152
|
-
params.update({"max_date": f"{last_date_str}"})
|
|
153
|
-
big_df["商品"] = "欧元区利率决议"
|
|
154
|
-
big_df.columns = [
|
|
155
|
-
"日期",
|
|
156
|
-
"今值",
|
|
157
|
-
"预测值",
|
|
158
|
-
"前值",
|
|
159
|
-
"商品",
|
|
160
|
-
]
|
|
161
|
-
big_df = big_df[
|
|
162
|
-
[
|
|
163
|
-
"商品",
|
|
164
|
-
"日期",
|
|
165
|
-
"今值",
|
|
166
|
-
"预测值",
|
|
167
|
-
"前值",
|
|
168
|
-
]
|
|
169
|
-
]
|
|
170
|
-
big_df["日期"] = pd.to_datetime(big_df["日期"]).dt.date
|
|
171
|
-
big_df["今值"] = pd.to_numeric(big_df["今值"])
|
|
172
|
-
big_df["预测值"] = pd.to_numeric(big_df["预测值"])
|
|
173
|
-
big_df["前值"] = pd.to_numeric(big_df["前值"])
|
|
174
|
-
big_df.sort_values(["日期"], inplace=True)
|
|
175
|
-
big_df.reset_index(inplace=True, drop=True)
|
|
176
|
-
return big_df
|
|
120
|
+
return __get_interest_rate_data(attr_id="21", name="欧洲央行决议报告")
|
|
177
121
|
|
|
178
122
|
|
|
179
123
|
# 金十数据中心-经济指标-央行利率-主要央行利率-新西兰联储决议报告
|
|
@@ -185,71 +129,7 @@ def macro_bank_newzealand_interest_rate() -> pd.DataFrame:
|
|
|
185
129
|
:return: 新西兰联储决议报告-今值(%)
|
|
186
130
|
:rtype: pandas.Series
|
|
187
131
|
"""
|
|
188
|
-
|
|
189
|
-
headers = {
|
|
190
|
-
"accept": "*/*",
|
|
191
|
-
"accept-encoding": "gzip, deflate, br",
|
|
192
|
-
"accept-language": "zh-CN,zh;q=0.9,en;q=0.8",
|
|
193
|
-
"cache-control": "no-cache",
|
|
194
|
-
"origin": "https://datacenter.jin10.com",
|
|
195
|
-
"pragma": "no-cache",
|
|
196
|
-
"sec-fetch-dest": "empty",
|
|
197
|
-
"sec-fetch-mode": "cors",
|
|
198
|
-
"sec-fetch-site": "same-site",
|
|
199
|
-
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36",
|
|
200
|
-
"x-app-id": "rU6QIu7JHe2gOUeR",
|
|
201
|
-
"x-csrf-token": "",
|
|
202
|
-
"x-version": "1.0.0",
|
|
203
|
-
}
|
|
204
|
-
url = "https://datacenter-api.jin10.com/reports/list_v2"
|
|
205
|
-
params = {
|
|
206
|
-
"max_date": "",
|
|
207
|
-
"category": "ec",
|
|
208
|
-
"attr_id": "23",
|
|
209
|
-
"_": str(int(round(t * 1000))),
|
|
210
|
-
}
|
|
211
|
-
big_df = pd.DataFrame()
|
|
212
|
-
while True:
|
|
213
|
-
r = requests.get(url, params=params, headers=headers)
|
|
214
|
-
data_json = r.json()
|
|
215
|
-
if not data_json["data"]["values"]:
|
|
216
|
-
break
|
|
217
|
-
temp_df = pd.DataFrame(data_json["data"]["values"])
|
|
218
|
-
big_df = pd.concat([big_df, temp_df], ignore_index=True)
|
|
219
|
-
last_date_str = temp_df.iat[-1, 0]
|
|
220
|
-
last_date_str = (
|
|
221
|
-
(
|
|
222
|
-
datetime.datetime.strptime(last_date_str, "%Y-%m-%d")
|
|
223
|
-
- datetime.timedelta(days=1)
|
|
224
|
-
)
|
|
225
|
-
.date()
|
|
226
|
-
.isoformat()
|
|
227
|
-
)
|
|
228
|
-
params.update({"max_date": f"{last_date_str}"})
|
|
229
|
-
big_df["商品"] = "新西兰利率决议报告"
|
|
230
|
-
big_df.columns = [
|
|
231
|
-
"日期",
|
|
232
|
-
"今值",
|
|
233
|
-
"预测值",
|
|
234
|
-
"前值",
|
|
235
|
-
"商品",
|
|
236
|
-
]
|
|
237
|
-
big_df = big_df[
|
|
238
|
-
[
|
|
239
|
-
"商品",
|
|
240
|
-
"日期",
|
|
241
|
-
"今值",
|
|
242
|
-
"预测值",
|
|
243
|
-
"前值",
|
|
244
|
-
]
|
|
245
|
-
]
|
|
246
|
-
big_df["日期"] = pd.to_datetime(big_df["日期"]).dt.date
|
|
247
|
-
big_df["今值"] = pd.to_numeric(big_df["今值"])
|
|
248
|
-
big_df["预测值"] = pd.to_numeric(big_df["预测值"])
|
|
249
|
-
big_df["前值"] = pd.to_numeric(big_df["前值"])
|
|
250
|
-
big_df.sort_values(["日期"], inplace=True)
|
|
251
|
-
big_df.reset_index(inplace=True, drop=True)
|
|
252
|
-
return big_df
|
|
132
|
+
return __get_interest_rate_data(attr_id="23", name="新西兰利率决议报告")
|
|
253
133
|
|
|
254
134
|
|
|
255
135
|
# 金十数据中心-经济指标-央行利率-主要央行利率-瑞士央行决议报告
|
|
@@ -261,71 +141,7 @@ def macro_bank_switzerland_interest_rate() -> pd.DataFrame:
|
|
|
261
141
|
:return: 瑞士央行利率决议报告-今值(%)
|
|
262
142
|
:rtype: pandas.Series
|
|
263
143
|
"""
|
|
264
|
-
|
|
265
|
-
headers = {
|
|
266
|
-
"accept": "*/*",
|
|
267
|
-
"accept-encoding": "gzip, deflate, br",
|
|
268
|
-
"accept-language": "zh-CN,zh;q=0.9,en;q=0.8",
|
|
269
|
-
"cache-control": "no-cache",
|
|
270
|
-
"origin": "https://datacenter.jin10.com",
|
|
271
|
-
"pragma": "no-cache",
|
|
272
|
-
"sec-fetch-dest": "empty",
|
|
273
|
-
"sec-fetch-mode": "cors",
|
|
274
|
-
"sec-fetch-site": "same-site",
|
|
275
|
-
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36",
|
|
276
|
-
"x-app-id": "rU6QIu7JHe2gOUeR",
|
|
277
|
-
"x-csrf-token": "",
|
|
278
|
-
"x-version": "1.0.0",
|
|
279
|
-
}
|
|
280
|
-
url = "https://datacenter-api.jin10.com/reports/list_v2"
|
|
281
|
-
params = {
|
|
282
|
-
"max_date": "",
|
|
283
|
-
"category": "ec",
|
|
284
|
-
"attr_id": "25",
|
|
285
|
-
"_": str(int(round(t * 1000))),
|
|
286
|
-
}
|
|
287
|
-
big_df = pd.DataFrame()
|
|
288
|
-
while True:
|
|
289
|
-
r = requests.get(url, params=params, headers=headers)
|
|
290
|
-
data_json = r.json()
|
|
291
|
-
if not data_json["data"]["values"]:
|
|
292
|
-
break
|
|
293
|
-
temp_df = pd.DataFrame(data_json["data"]["values"])
|
|
294
|
-
big_df = pd.concat([big_df, temp_df], ignore_index=True)
|
|
295
|
-
last_date_str = temp_df.iat[-1, 0]
|
|
296
|
-
last_date_str = (
|
|
297
|
-
(
|
|
298
|
-
datetime.datetime.strptime(last_date_str, "%Y-%m-%d")
|
|
299
|
-
- datetime.timedelta(days=1)
|
|
300
|
-
)
|
|
301
|
-
.date()
|
|
302
|
-
.isoformat()
|
|
303
|
-
)
|
|
304
|
-
params.update({"max_date": f"{last_date_str}"})
|
|
305
|
-
big_df["商品"] = "瑞士央行利率决议报告"
|
|
306
|
-
big_df.columns = [
|
|
307
|
-
"日期",
|
|
308
|
-
"今值",
|
|
309
|
-
"预测值",
|
|
310
|
-
"前值",
|
|
311
|
-
"商品",
|
|
312
|
-
]
|
|
313
|
-
big_df = big_df[
|
|
314
|
-
[
|
|
315
|
-
"商品",
|
|
316
|
-
"日期",
|
|
317
|
-
"今值",
|
|
318
|
-
"预测值",
|
|
319
|
-
"前值",
|
|
320
|
-
]
|
|
321
|
-
]
|
|
322
|
-
big_df["日期"] = pd.to_datetime(big_df["日期"]).dt.date
|
|
323
|
-
big_df["今值"] = pd.to_numeric(big_df["今值"])
|
|
324
|
-
big_df["预测值"] = pd.to_numeric(big_df["预测值"])
|
|
325
|
-
big_df["前值"] = pd.to_numeric(big_df["前值"])
|
|
326
|
-
big_df.sort_values(["日期"], inplace=True)
|
|
327
|
-
big_df.reset_index(inplace=True, drop=True)
|
|
328
|
-
return big_df
|
|
144
|
+
return __get_interest_rate_data(attr_id="25", name="瑞士央行决议报告")
|
|
329
145
|
|
|
330
146
|
|
|
331
147
|
# 金十数据中心-经济指标-央行利率-主要央行利率-英国央行决议报告
|
|
@@ -337,71 +153,7 @@ def macro_bank_english_interest_rate() -> pd.DataFrame:
|
|
|
337
153
|
:return: 英国央行决议报告-今值(%)
|
|
338
154
|
:rtype: pandas.Series
|
|
339
155
|
"""
|
|
340
|
-
|
|
341
|
-
headers = {
|
|
342
|
-
"accept": "*/*",
|
|
343
|
-
"accept-encoding": "gzip, deflate, br",
|
|
344
|
-
"accept-language": "zh-CN,zh;q=0.9,en;q=0.8",
|
|
345
|
-
"cache-control": "no-cache",
|
|
346
|
-
"origin": "https://datacenter.jin10.com",
|
|
347
|
-
"pragma": "no-cache",
|
|
348
|
-
"sec-fetch-dest": "empty",
|
|
349
|
-
"sec-fetch-mode": "cors",
|
|
350
|
-
"sec-fetch-site": "same-site",
|
|
351
|
-
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36",
|
|
352
|
-
"x-app-id": "rU6QIu7JHe2gOUeR",
|
|
353
|
-
"x-csrf-token": "",
|
|
354
|
-
"x-version": "1.0.0",
|
|
355
|
-
}
|
|
356
|
-
url = "https://datacenter-api.jin10.com/reports/list_v2"
|
|
357
|
-
params = {
|
|
358
|
-
"max_date": "",
|
|
359
|
-
"category": "ec",
|
|
360
|
-
"attr_id": "26",
|
|
361
|
-
"_": str(int(round(t * 1000))),
|
|
362
|
-
}
|
|
363
|
-
big_df = pd.DataFrame()
|
|
364
|
-
while True:
|
|
365
|
-
r = requests.get(url, params=params, headers=headers)
|
|
366
|
-
data_json = r.json()
|
|
367
|
-
if not data_json["data"]["values"]:
|
|
368
|
-
break
|
|
369
|
-
temp_df = pd.DataFrame(data_json["data"]["values"])
|
|
370
|
-
big_df = pd.concat([big_df, temp_df], ignore_index=True)
|
|
371
|
-
last_date_str = temp_df.iat[-1, 0]
|
|
372
|
-
last_date_str = (
|
|
373
|
-
(
|
|
374
|
-
datetime.datetime.strptime(last_date_str, "%Y-%m-%d")
|
|
375
|
-
- datetime.timedelta(days=1)
|
|
376
|
-
)
|
|
377
|
-
.date()
|
|
378
|
-
.isoformat()
|
|
379
|
-
)
|
|
380
|
-
params.update({"max_date": f"{last_date_str}"})
|
|
381
|
-
big_df["商品"] = "英国利率决议报告"
|
|
382
|
-
big_df.columns = [
|
|
383
|
-
"日期",
|
|
384
|
-
"今值",
|
|
385
|
-
"预测值",
|
|
386
|
-
"前值",
|
|
387
|
-
"商品",
|
|
388
|
-
]
|
|
389
|
-
big_df = big_df[
|
|
390
|
-
[
|
|
391
|
-
"商品",
|
|
392
|
-
"日期",
|
|
393
|
-
"今值",
|
|
394
|
-
"预测值",
|
|
395
|
-
"前值",
|
|
396
|
-
]
|
|
397
|
-
]
|
|
398
|
-
big_df["日期"] = pd.to_datetime(big_df["日期"]).dt.date
|
|
399
|
-
big_df["今值"] = pd.to_numeric(big_df["今值"])
|
|
400
|
-
big_df["预测值"] = pd.to_numeric(big_df["预测值"])
|
|
401
|
-
big_df["前值"] = pd.to_numeric(big_df["前值"])
|
|
402
|
-
big_df.sort_values(["日期"], inplace=True)
|
|
403
|
-
big_df.reset_index(inplace=True, drop=True)
|
|
404
|
-
return big_df
|
|
156
|
+
return __get_interest_rate_data(attr_id="26", name="英国央行决议报告")
|
|
405
157
|
|
|
406
158
|
|
|
407
159
|
# 金十数据中心-经济指标-央行利率-主要央行利率-澳洲联储决议报告
|
|
@@ -413,71 +165,7 @@ def macro_bank_australia_interest_rate() -> pd.DataFrame:
|
|
|
413
165
|
:return: 澳洲联储决议报告-今值(%)
|
|
414
166
|
:rtype: pandas.Series
|
|
415
167
|
"""
|
|
416
|
-
|
|
417
|
-
headers = {
|
|
418
|
-
"accept": "*/*",
|
|
419
|
-
"accept-encoding": "gzip, deflate, br",
|
|
420
|
-
"accept-language": "zh-CN,zh;q=0.9,en;q=0.8",
|
|
421
|
-
"cache-control": "no-cache",
|
|
422
|
-
"origin": "https://datacenter.jin10.com",
|
|
423
|
-
"pragma": "no-cache",
|
|
424
|
-
"sec-fetch-dest": "empty",
|
|
425
|
-
"sec-fetch-mode": "cors",
|
|
426
|
-
"sec-fetch-site": "same-site",
|
|
427
|
-
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36",
|
|
428
|
-
"x-app-id": "rU6QIu7JHe2gOUeR",
|
|
429
|
-
"x-csrf-token": "",
|
|
430
|
-
"x-version": "1.0.0",
|
|
431
|
-
}
|
|
432
|
-
url = "https://datacenter-api.jin10.com/reports/list_v2"
|
|
433
|
-
params = {
|
|
434
|
-
"max_date": "",
|
|
435
|
-
"category": "ec",
|
|
436
|
-
"attr_id": "27",
|
|
437
|
-
"_": str(int(round(t * 1000))),
|
|
438
|
-
}
|
|
439
|
-
big_df = pd.DataFrame()
|
|
440
|
-
while True:
|
|
441
|
-
r = requests.get(url, params=params, headers=headers)
|
|
442
|
-
data_json = r.json()
|
|
443
|
-
if not data_json["data"]["values"]:
|
|
444
|
-
break
|
|
445
|
-
temp_df = pd.DataFrame(data_json["data"]["values"])
|
|
446
|
-
big_df = pd.concat([big_df, temp_df], ignore_index=True)
|
|
447
|
-
last_date_str = temp_df.iat[-1, 0]
|
|
448
|
-
last_date_str = (
|
|
449
|
-
(
|
|
450
|
-
datetime.datetime.strptime(last_date_str, "%Y-%m-%d")
|
|
451
|
-
- datetime.timedelta(days=1)
|
|
452
|
-
)
|
|
453
|
-
.date()
|
|
454
|
-
.isoformat()
|
|
455
|
-
)
|
|
456
|
-
params.update({"max_date": f"{last_date_str}"})
|
|
457
|
-
big_df["商品"] = "澳大利亚利率决议报告"
|
|
458
|
-
big_df.columns = [
|
|
459
|
-
"日期",
|
|
460
|
-
"今值",
|
|
461
|
-
"预测值",
|
|
462
|
-
"前值",
|
|
463
|
-
"商品",
|
|
464
|
-
]
|
|
465
|
-
big_df = big_df[
|
|
466
|
-
[
|
|
467
|
-
"商品",
|
|
468
|
-
"日期",
|
|
469
|
-
"今值",
|
|
470
|
-
"预测值",
|
|
471
|
-
"前值",
|
|
472
|
-
]
|
|
473
|
-
]
|
|
474
|
-
big_df["日期"] = pd.to_datetime(big_df["日期"]).dt.date
|
|
475
|
-
big_df["今值"] = pd.to_numeric(big_df["今值"])
|
|
476
|
-
big_df["预测值"] = pd.to_numeric(big_df["预测值"])
|
|
477
|
-
big_df["前值"] = pd.to_numeric(big_df["前值"])
|
|
478
|
-
big_df.sort_values(["日期"], inplace=True)
|
|
479
|
-
big_df.reset_index(inplace=True, drop=True)
|
|
480
|
-
return big_df
|
|
168
|
+
return __get_interest_rate_data(attr_id="27", name="澳洲联储决议报告")
|
|
481
169
|
|
|
482
170
|
|
|
483
171
|
# 金十数据中心-经济指标-央行利率-主要央行利率-日本央行决议报告
|
|
@@ -489,71 +177,7 @@ def macro_bank_japan_interest_rate() -> pd.DataFrame:
|
|
|
489
177
|
:return: 日本利率决议报告-今值(%)
|
|
490
178
|
:rtype: pandas.Series
|
|
491
179
|
"""
|
|
492
|
-
|
|
493
|
-
headers = {
|
|
494
|
-
"accept": "*/*",
|
|
495
|
-
"accept-encoding": "gzip, deflate, br",
|
|
496
|
-
"accept-language": "zh-CN,zh;q=0.9,en;q=0.8",
|
|
497
|
-
"cache-control": "no-cache",
|
|
498
|
-
"origin": "https://datacenter.jin10.com",
|
|
499
|
-
"pragma": "no-cache",
|
|
500
|
-
"sec-fetch-dest": "empty",
|
|
501
|
-
"sec-fetch-mode": "cors",
|
|
502
|
-
"sec-fetch-site": "same-site",
|
|
503
|
-
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36",
|
|
504
|
-
"x-app-id": "rU6QIu7JHe2gOUeR",
|
|
505
|
-
"x-csrf-token": "",
|
|
506
|
-
"x-version": "1.0.0",
|
|
507
|
-
}
|
|
508
|
-
url = "https://datacenter-api.jin10.com/reports/list_v2"
|
|
509
|
-
params = {
|
|
510
|
-
"max_date": "",
|
|
511
|
-
"category": "ec",
|
|
512
|
-
"attr_id": "22",
|
|
513
|
-
"_": str(int(round(t * 1000))),
|
|
514
|
-
}
|
|
515
|
-
big_df = pd.DataFrame()
|
|
516
|
-
while True:
|
|
517
|
-
r = requests.get(url, params=params, headers=headers)
|
|
518
|
-
data_json = r.json()
|
|
519
|
-
if not data_json["data"]["values"]:
|
|
520
|
-
break
|
|
521
|
-
temp_df = pd.DataFrame(data_json["data"]["values"])
|
|
522
|
-
big_df = pd.concat([big_df, temp_df], ignore_index=True)
|
|
523
|
-
last_date_str = temp_df.iat[-1, 0]
|
|
524
|
-
last_date_str = (
|
|
525
|
-
(
|
|
526
|
-
datetime.datetime.strptime(last_date_str, "%Y-%m-%d")
|
|
527
|
-
- datetime.timedelta(days=1)
|
|
528
|
-
)
|
|
529
|
-
.date()
|
|
530
|
-
.isoformat()
|
|
531
|
-
)
|
|
532
|
-
params.update({"max_date": f"{last_date_str}"})
|
|
533
|
-
big_df["商品"] = "日本利率决议报告"
|
|
534
|
-
big_df.columns = [
|
|
535
|
-
"日期",
|
|
536
|
-
"今值",
|
|
537
|
-
"预测值",
|
|
538
|
-
"前值",
|
|
539
|
-
"商品",
|
|
540
|
-
]
|
|
541
|
-
big_df = big_df[
|
|
542
|
-
[
|
|
543
|
-
"商品",
|
|
544
|
-
"日期",
|
|
545
|
-
"今值",
|
|
546
|
-
"预测值",
|
|
547
|
-
"前值",
|
|
548
|
-
]
|
|
549
|
-
]
|
|
550
|
-
big_df["日期"] = pd.to_datetime(big_df["日期"]).dt.date
|
|
551
|
-
big_df["今值"] = pd.to_numeric(big_df["今值"])
|
|
552
|
-
big_df["预测值"] = pd.to_numeric(big_df["预测值"])
|
|
553
|
-
big_df["前值"] = pd.to_numeric(big_df["前值"])
|
|
554
|
-
big_df.sort_values(["日期"], inplace=True)
|
|
555
|
-
big_df.reset_index(inplace=True, drop=True)
|
|
556
|
-
return big_df
|
|
180
|
+
return __get_interest_rate_data(attr_id="22", name="日本央行决议报告")
|
|
557
181
|
|
|
558
182
|
|
|
559
183
|
# 金十数据中心-经济指标-央行利率-主要央行利率-俄罗斯央行决议报告
|
|
@@ -565,71 +189,7 @@ def macro_bank_russia_interest_rate() -> pd.DataFrame:
|
|
|
565
189
|
:return: 俄罗斯利率决议报告-今值(%)
|
|
566
190
|
:rtype: pandas.Series
|
|
567
191
|
"""
|
|
568
|
-
|
|
569
|
-
headers = {
|
|
570
|
-
"accept": "*/*",
|
|
571
|
-
"accept-encoding": "gzip, deflate, br",
|
|
572
|
-
"accept-language": "zh-CN,zh;q=0.9,en;q=0.8",
|
|
573
|
-
"cache-control": "no-cache",
|
|
574
|
-
"origin": "https://datacenter.jin10.com",
|
|
575
|
-
"pragma": "no-cache",
|
|
576
|
-
"sec-fetch-dest": "empty",
|
|
577
|
-
"sec-fetch-mode": "cors",
|
|
578
|
-
"sec-fetch-site": "same-site",
|
|
579
|
-
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36",
|
|
580
|
-
"x-app-id": "rU6QIu7JHe2gOUeR",
|
|
581
|
-
"x-csrf-token": "",
|
|
582
|
-
"x-version": "1.0.0",
|
|
583
|
-
}
|
|
584
|
-
url = "https://datacenter-api.jin10.com/reports/list_v2"
|
|
585
|
-
params = {
|
|
586
|
-
"max_date": "",
|
|
587
|
-
"category": "ec",
|
|
588
|
-
"attr_id": "64",
|
|
589
|
-
"_": str(int(round(t * 1000))),
|
|
590
|
-
}
|
|
591
|
-
big_df = pd.DataFrame()
|
|
592
|
-
while True:
|
|
593
|
-
r = requests.get(url, params=params, headers=headers)
|
|
594
|
-
data_json = r.json()
|
|
595
|
-
if not data_json["data"]["values"]:
|
|
596
|
-
break
|
|
597
|
-
temp_df = pd.DataFrame(data_json["data"]["values"])
|
|
598
|
-
big_df = pd.concat([big_df, temp_df], ignore_index=True)
|
|
599
|
-
last_date_str = temp_df.iat[-1, 0]
|
|
600
|
-
last_date_str = (
|
|
601
|
-
(
|
|
602
|
-
datetime.datetime.strptime(last_date_str, "%Y-%m-%d")
|
|
603
|
-
- datetime.timedelta(days=1)
|
|
604
|
-
)
|
|
605
|
-
.date()
|
|
606
|
-
.isoformat()
|
|
607
|
-
)
|
|
608
|
-
params.update({"max_date": f"{last_date_str}"})
|
|
609
|
-
big_df["商品"] = "俄罗斯利率决议报告"
|
|
610
|
-
big_df.columns = [
|
|
611
|
-
"日期",
|
|
612
|
-
"今值",
|
|
613
|
-
"预测值",
|
|
614
|
-
"前值",
|
|
615
|
-
"商品",
|
|
616
|
-
]
|
|
617
|
-
big_df = big_df[
|
|
618
|
-
[
|
|
619
|
-
"商品",
|
|
620
|
-
"日期",
|
|
621
|
-
"今值",
|
|
622
|
-
"预测值",
|
|
623
|
-
"前值",
|
|
624
|
-
]
|
|
625
|
-
]
|
|
626
|
-
big_df["日期"] = pd.to_datetime(big_df["日期"]).dt.date
|
|
627
|
-
big_df["今值"] = pd.to_numeric(big_df["今值"])
|
|
628
|
-
big_df["预测值"] = pd.to_numeric(big_df["预测值"])
|
|
629
|
-
big_df["前值"] = pd.to_numeric(big_df["前值"])
|
|
630
|
-
big_df.sort_values(["日期"], inplace=True)
|
|
631
|
-
big_df.reset_index(inplace=True, drop=True)
|
|
632
|
-
return big_df
|
|
192
|
+
return __get_interest_rate_data(attr_id="64", name="俄罗斯央行决议报告")
|
|
633
193
|
|
|
634
194
|
|
|
635
195
|
# 金十数据中心-经济指标-央行利率-主要央行利率-印度央行决议报告
|
|
@@ -641,71 +201,7 @@ def macro_bank_india_interest_rate() -> pd.DataFrame:
|
|
|
641
201
|
:return: 印度利率决议报告-今值(%)
|
|
642
202
|
:rtype: pandas.Series
|
|
643
203
|
"""
|
|
644
|
-
|
|
645
|
-
headers = {
|
|
646
|
-
"accept": "*/*",
|
|
647
|
-
"accept-encoding": "gzip, deflate, br",
|
|
648
|
-
"accept-language": "zh-CN,zh;q=0.9,en;q=0.8",
|
|
649
|
-
"cache-control": "no-cache",
|
|
650
|
-
"origin": "https://datacenter.jin10.com",
|
|
651
|
-
"pragma": "no-cache",
|
|
652
|
-
"sec-fetch-dest": "empty",
|
|
653
|
-
"sec-fetch-mode": "cors",
|
|
654
|
-
"sec-fetch-site": "same-site",
|
|
655
|
-
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36",
|
|
656
|
-
"x-app-id": "rU6QIu7JHe2gOUeR",
|
|
657
|
-
"x-csrf-token": "",
|
|
658
|
-
"x-version": "1.0.0",
|
|
659
|
-
}
|
|
660
|
-
url = "https://datacenter-api.jin10.com/reports/list_v2"
|
|
661
|
-
params = {
|
|
662
|
-
"max_date": "",
|
|
663
|
-
"category": "ec",
|
|
664
|
-
"attr_id": "68",
|
|
665
|
-
"_": str(int(round(t * 1000))),
|
|
666
|
-
}
|
|
667
|
-
big_df = pd.DataFrame()
|
|
668
|
-
while True:
|
|
669
|
-
r = requests.get(url, params=params, headers=headers)
|
|
670
|
-
data_json = r.json()
|
|
671
|
-
if not data_json["data"]["values"]:
|
|
672
|
-
break
|
|
673
|
-
temp_df = pd.DataFrame(data_json["data"]["values"])
|
|
674
|
-
big_df = pd.concat([big_df, temp_df], ignore_index=True)
|
|
675
|
-
last_date_str = temp_df.iat[-1, 0]
|
|
676
|
-
last_date_str = (
|
|
677
|
-
(
|
|
678
|
-
datetime.datetime.strptime(last_date_str, "%Y-%m-%d")
|
|
679
|
-
- datetime.timedelta(days=1)
|
|
680
|
-
)
|
|
681
|
-
.date()
|
|
682
|
-
.isoformat()
|
|
683
|
-
)
|
|
684
|
-
params.update({"max_date": f"{last_date_str}"})
|
|
685
|
-
big_df["商品"] = "印度利率决议报告"
|
|
686
|
-
big_df.columns = [
|
|
687
|
-
"日期",
|
|
688
|
-
"今值",
|
|
689
|
-
"预测值",
|
|
690
|
-
"前值",
|
|
691
|
-
"商品",
|
|
692
|
-
]
|
|
693
|
-
big_df = big_df[
|
|
694
|
-
[
|
|
695
|
-
"商品",
|
|
696
|
-
"日期",
|
|
697
|
-
"今值",
|
|
698
|
-
"预测值",
|
|
699
|
-
"前值",
|
|
700
|
-
]
|
|
701
|
-
]
|
|
702
|
-
big_df["日期"] = pd.to_datetime(big_df["日期"]).dt.date
|
|
703
|
-
big_df["今值"] = pd.to_numeric(big_df["今值"])
|
|
704
|
-
big_df["预测值"] = pd.to_numeric(big_df["预测值"])
|
|
705
|
-
big_df["前值"] = pd.to_numeric(big_df["前值"])
|
|
706
|
-
big_df.sort_values(["日期"], inplace=True)
|
|
707
|
-
big_df.reset_index(inplace=True, drop=True)
|
|
708
|
-
return big_df
|
|
204
|
+
return __get_interest_rate_data(attr_id="68", name="印度央行决议报告")
|
|
709
205
|
|
|
710
206
|
|
|
711
207
|
# 金十数据中心-经济指标-央行利率-主要央行利率-巴西央行决议报告
|
|
@@ -717,71 +213,7 @@ def macro_bank_brazil_interest_rate() -> pd.DataFrame:
|
|
|
717
213
|
:return: 巴西利率决议报告-今值(%)
|
|
718
214
|
:rtype: pandas.Series
|
|
719
215
|
"""
|
|
720
|
-
|
|
721
|
-
headers = {
|
|
722
|
-
"accept": "*/*",
|
|
723
|
-
"accept-encoding": "gzip, deflate, br",
|
|
724
|
-
"accept-language": "zh-CN,zh;q=0.9,en;q=0.8",
|
|
725
|
-
"cache-control": "no-cache",
|
|
726
|
-
"origin": "https://datacenter.jin10.com",
|
|
727
|
-
"pragma": "no-cache",
|
|
728
|
-
"sec-fetch-dest": "empty",
|
|
729
|
-
"sec-fetch-mode": "cors",
|
|
730
|
-
"sec-fetch-site": "same-site",
|
|
731
|
-
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36",
|
|
732
|
-
"x-app-id": "rU6QIu7JHe2gOUeR",
|
|
733
|
-
"x-csrf-token": "",
|
|
734
|
-
"x-version": "1.0.0",
|
|
735
|
-
}
|
|
736
|
-
url = "https://datacenter-api.jin10.com/reports/list_v2"
|
|
737
|
-
params = {
|
|
738
|
-
"max_date": "",
|
|
739
|
-
"category": "ec",
|
|
740
|
-
"attr_id": "55",
|
|
741
|
-
"_": str(int(round(t * 1000))),
|
|
742
|
-
}
|
|
743
|
-
big_df = pd.DataFrame()
|
|
744
|
-
while True:
|
|
745
|
-
r = requests.get(url, params=params, headers=headers)
|
|
746
|
-
data_json = r.json()
|
|
747
|
-
if not data_json["data"]["values"]:
|
|
748
|
-
break
|
|
749
|
-
temp_df = pd.DataFrame(data_json["data"]["values"])
|
|
750
|
-
big_df = pd.concat([big_df, temp_df], ignore_index=True)
|
|
751
|
-
last_date_str = temp_df.iat[-1, 0]
|
|
752
|
-
last_date_str = (
|
|
753
|
-
(
|
|
754
|
-
datetime.datetime.strptime(last_date_str, "%Y-%m-%d")
|
|
755
|
-
- datetime.timedelta(days=1)
|
|
756
|
-
)
|
|
757
|
-
.date()
|
|
758
|
-
.isoformat()
|
|
759
|
-
)
|
|
760
|
-
params.update({"max_date": f"{last_date_str}"})
|
|
761
|
-
big_df["商品"] = "巴西利率决议报告"
|
|
762
|
-
big_df.columns = [
|
|
763
|
-
"日期",
|
|
764
|
-
"今值",
|
|
765
|
-
"预测值",
|
|
766
|
-
"前值",
|
|
767
|
-
"商品",
|
|
768
|
-
]
|
|
769
|
-
big_df = big_df[
|
|
770
|
-
[
|
|
771
|
-
"商品",
|
|
772
|
-
"日期",
|
|
773
|
-
"今值",
|
|
774
|
-
"预测值",
|
|
775
|
-
"前值",
|
|
776
|
-
]
|
|
777
|
-
]
|
|
778
|
-
big_df["日期"] = pd.to_datetime(big_df["日期"]).dt.date
|
|
779
|
-
big_df["今值"] = pd.to_numeric(big_df["今值"])
|
|
780
|
-
big_df["预测值"] = pd.to_numeric(big_df["预测值"])
|
|
781
|
-
big_df["前值"] = pd.to_numeric(big_df["前值"])
|
|
782
|
-
big_df.sort_values(["日期"], inplace=True)
|
|
783
|
-
big_df.reset_index(inplace=True, drop=True)
|
|
784
|
-
return big_df
|
|
216
|
+
return __get_interest_rate_data(attr_id="55", name="巴西央行决议报告")
|
|
785
217
|
|
|
786
218
|
|
|
787
219
|
if __name__ == "__main__":
|
|
@@ -794,15 +226,11 @@ if __name__ == "__main__":
|
|
|
794
226
|
print(macro_bank_euro_interest_rate_df)
|
|
795
227
|
|
|
796
228
|
# 金十数据中心-经济指标-央行利率-主要央行利率-新西兰联储决议报告
|
|
797
|
-
macro_bank_newzealand_interest_rate_df = (
|
|
798
|
-
macro_bank_newzealand_interest_rate()
|
|
799
|
-
)
|
|
229
|
+
macro_bank_newzealand_interest_rate_df = macro_bank_newzealand_interest_rate()
|
|
800
230
|
print(macro_bank_newzealand_interest_rate_df)
|
|
801
231
|
|
|
802
232
|
# 金十数据中心-经济指标-央行利率-主要央行利率-瑞士央行决议报告
|
|
803
|
-
macro_bank_switzerland_interest_rate_df = (
|
|
804
|
-
macro_bank_switzerland_interest_rate()
|
|
805
|
-
)
|
|
233
|
+
macro_bank_switzerland_interest_rate_df = macro_bank_switzerland_interest_rate()
|
|
806
234
|
print(macro_bank_switzerland_interest_rate_df)
|
|
807
235
|
|
|
808
236
|
# 金十数据中心-经济指标-央行利率-主要央行利率-英国央行决议报告
|
|
@@ -810,9 +238,7 @@ if __name__ == "__main__":
|
|
|
810
238
|
print(macro_bank_english_interest_rate_df)
|
|
811
239
|
|
|
812
240
|
# 金十数据中心-经济指标-央行利率-主要央行利率-澳洲联储决议报告
|
|
813
|
-
macro_bank_australia_interest_rate_df = (
|
|
814
|
-
macro_bank_australia_interest_rate()
|
|
815
|
-
)
|
|
241
|
+
macro_bank_australia_interest_rate_df = macro_bank_australia_interest_rate()
|
|
816
242
|
print(macro_bank_australia_interest_rate_df)
|
|
817
243
|
|
|
818
244
|
# 金十数据中心-经济指标-央行利率-主要央行利率-日本央行决议报告
|
|
@@ -382,7 +382,7 @@ def index_value_name_funddb() -> pd.DataFrame:
|
|
|
382
382
|
|
|
383
383
|
|
|
384
384
|
def index_value_hist_funddb(
|
|
385
|
-
symbol: str = "大盘成长", indicator: str = "市盈率"
|
|
385
|
+
symbol: str = "大盘成长", indicator: str = "市盈率", year: str = "-1"
|
|
386
386
|
) -> pd.DataFrame:
|
|
387
387
|
"""
|
|
388
388
|
funddb-指数估值-估值信息
|
|
@@ -391,6 +391,8 @@ def index_value_hist_funddb(
|
|
|
391
391
|
:type symbol: str
|
|
392
392
|
:param indicator: choice of {'市盈率', '市净率', '股息率', '风险溢价'}
|
|
393
393
|
:type indicator: str
|
|
394
|
+
:param year: choice of {'-1': "所有", '3': "近3年", '5': "近5年", '10': "近10年"}
|
|
395
|
+
:type year: str
|
|
394
396
|
:return: 估值信息
|
|
395
397
|
:rtype: pandas.DataFrame
|
|
396
398
|
"""
|
|
@@ -417,12 +419,12 @@ def index_value_hist_funddb(
|
|
|
417
419
|
type="pc",
|
|
418
420
|
ver="new",
|
|
419
421
|
version="2.2.7",
|
|
420
|
-
year
|
|
422
|
+
year=int(year),
|
|
421
423
|
)
|
|
422
424
|
payload = {
|
|
423
425
|
"gu_code": name_code_map[symbol],
|
|
424
426
|
"pe_category": indicator_map[indicator],
|
|
425
|
-
"year":
|
|
427
|
+
"year": int(year),
|
|
426
428
|
"ver": "new",
|
|
427
429
|
"type": "pc",
|
|
428
430
|
"version": "2.2.7",
|
|
@@ -474,6 +476,6 @@ if __name__ == "__main__":
|
|
|
474
476
|
print(index_value_name_funddb_df)
|
|
475
477
|
|
|
476
478
|
index_value_hist_funddb_df = index_value_hist_funddb(
|
|
477
|
-
symbol="大盘成长", indicator="市盈率"
|
|
479
|
+
symbol="大盘成长", indicator="市盈率", year="-1"
|
|
478
480
|
)
|
|
479
481
|
print(index_value_hist_funddb_df)
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
# -*- coding:utf-8 -*-
|
|
2
2
|
# !/usr/bin/env python
|
|
3
3
|
"""
|
|
4
|
-
Date:
|
|
4
|
+
Date: 2024/11/5 16:00
|
|
5
5
|
Desc: 雪球-行情中心-沪深股市-内部交易
|
|
6
6
|
https://xueqiu.com/hq/insider
|
|
7
7
|
"""
|
|
8
|
+
|
|
8
9
|
import pandas as pd
|
|
9
10
|
import requests
|
|
10
11
|
|
|
@@ -18,10 +19,10 @@ def stock_inner_trade_xq() -> pd.DataFrame:
|
|
|
18
19
|
"""
|
|
19
20
|
url = "https://xueqiu.com/service/v5/stock/f10/cn/skholderchg"
|
|
20
21
|
params = {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
"size": "100000",
|
|
23
|
+
"page": "1",
|
|
24
|
+
"extend": "true",
|
|
25
|
+
"_": "1651223013040",
|
|
25
26
|
}
|
|
26
27
|
headers = {
|
|
27
28
|
"Accept": "*/*",
|
|
@@ -38,39 +39,46 @@ def stock_inner_trade_xq() -> pd.DataFrame:
|
|
|
38
39
|
"Sec-Fetch-Dest": "empty",
|
|
39
40
|
"Sec-Fetch-Mode": "cors",
|
|
40
41
|
"Sec-Fetch-Site": "same-origin",
|
|
41
|
-
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)
|
|
42
|
+
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
|
|
43
|
+
"Chrome/100.0.4896.127 Safari/537.36",
|
|
42
44
|
"X-Requested-With": "XMLHttpRequest",
|
|
43
45
|
}
|
|
44
46
|
r = requests.get(url, params=params, headers=headers)
|
|
45
47
|
data_json = r.json()
|
|
46
48
|
temp_df = pd.DataFrame(data_json["data"]["items"])
|
|
47
49
|
temp_df.columns = [
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
50
|
+
"股票代码",
|
|
51
|
+
"股票名称",
|
|
52
|
+
"变动人",
|
|
53
|
+
"-",
|
|
54
|
+
"变动日期",
|
|
55
|
+
"变动股数",
|
|
56
|
+
"成交均价",
|
|
57
|
+
"变动后持股数",
|
|
58
|
+
"与董监高关系",
|
|
59
|
+
"董监高职务",
|
|
60
|
+
]
|
|
61
|
+
temp_df = temp_df[
|
|
62
|
+
[
|
|
63
|
+
"股票代码",
|
|
64
|
+
"股票名称",
|
|
65
|
+
"变动日期",
|
|
66
|
+
"变动人",
|
|
67
|
+
"变动股数",
|
|
68
|
+
"成交均价",
|
|
69
|
+
"变动后持股数",
|
|
70
|
+
"与董监高关系",
|
|
71
|
+
"董监高职务",
|
|
72
|
+
]
|
|
58
73
|
]
|
|
59
|
-
temp_df =
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
'与董监高关系',
|
|
68
|
-
'董监高职务',
|
|
69
|
-
]]
|
|
70
|
-
temp_df['变动日期'] = pd.to_datetime(temp_df['变动日期'], unit="ms").dt.date
|
|
71
|
-
temp_df['变动股数'] = pd.to_numeric(temp_df['变动股数'], errors="coerce")
|
|
72
|
-
temp_df['成交均价'] = pd.to_numeric(temp_df['成交均价'], errors="coerce")
|
|
73
|
-
temp_df['变动后持股数'] = pd.to_numeric(temp_df['变动后持股数'], errors="coerce")
|
|
74
|
+
temp_df["变动日期"] = (
|
|
75
|
+
pd.to_datetime(temp_df["变动日期"], unit="ms", utc=True)
|
|
76
|
+
.dt.tz_convert("Asia/Shanghai")
|
|
77
|
+
.dt.date
|
|
78
|
+
)
|
|
79
|
+
temp_df["变动股数"] = pd.to_numeric(temp_df["变动股数"], errors="coerce")
|
|
80
|
+
temp_df["成交均价"] = pd.to_numeric(temp_df["成交均价"], errors="coerce")
|
|
81
|
+
temp_df["变动后持股数"] = pd.to_numeric(temp_df["变动后持股数"], errors="coerce")
|
|
74
82
|
return temp_df
|
|
75
83
|
|
|
76
84
|
|
|
@@ -11,6 +11,7 @@ import json
|
|
|
11
11
|
import pandas as pd
|
|
12
12
|
import requests
|
|
13
13
|
from bs4 import BeautifulSoup
|
|
14
|
+
|
|
14
15
|
from akshare.utils.cons import headers
|
|
15
16
|
|
|
16
17
|
|
|
@@ -163,13 +164,61 @@ def stock_financial_cash_ths(
|
|
|
163
164
|
return temp_df
|
|
164
165
|
|
|
165
166
|
|
|
167
|
+
def stock_management_change_ths(symbol: str = "688981") -> pd.DataFrame:
|
|
168
|
+
"""
|
|
169
|
+
同花顺-公司大事-高管持股变动
|
|
170
|
+
https://basic.10jqka.com.cn/new/688981/event.html
|
|
171
|
+
:param symbol: 股票代码
|
|
172
|
+
:type symbol: str
|
|
173
|
+
:return: 同花顺-公司大事-高管持股变动
|
|
174
|
+
:rtype: pandas.DataFrame
|
|
175
|
+
"""
|
|
176
|
+
url = f"https://basic.10jqka.com.cn/new/{symbol}/event.html"
|
|
177
|
+
r = requests.get(url, headers=headers)
|
|
178
|
+
r.encoding = "gb2312"
|
|
179
|
+
soup = BeautifulSoup(r.text, features="lxml")
|
|
180
|
+
soup_find = soup.find(name="table", attrs={"class": "data_table_1 m_table m_hl"})
|
|
181
|
+
if soup_find is not None:
|
|
182
|
+
content_list = [item.text.strip() for item in soup_find]
|
|
183
|
+
column_names = content_list[1].split("\n")
|
|
184
|
+
row = (
|
|
185
|
+
content_list[3]
|
|
186
|
+
.replace(" ", "")
|
|
187
|
+
.replace("\t", "")
|
|
188
|
+
.replace("\n\n", "")
|
|
189
|
+
.replace(" ", "\n")
|
|
190
|
+
.replace("\n\n", "\n")
|
|
191
|
+
.split("\n")
|
|
192
|
+
)
|
|
193
|
+
row = [item for item in row if item != ""]
|
|
194
|
+
new_rows = []
|
|
195
|
+
step = len(column_names)
|
|
196
|
+
for i in range(0, len(row), step):
|
|
197
|
+
new_rows.append(row[i : i + step])
|
|
198
|
+
temp_df = pd.DataFrame(new_rows, columns=column_names)
|
|
199
|
+
temp_df.sort_values(by="变动日期", ignore_index=True, inplace=True)
|
|
200
|
+
temp_df["变动日期"] = pd.to_datetime(
|
|
201
|
+
temp_df["变动日期"], errors="coerce"
|
|
202
|
+
).dt.date
|
|
203
|
+
temp_df.rename(
|
|
204
|
+
columns={
|
|
205
|
+
"变动数量(股)": "变动数量",
|
|
206
|
+
"交易均价(元)": "交易均价",
|
|
207
|
+
"剩余股数(股)": "剩余股数",
|
|
208
|
+
},
|
|
209
|
+
inplace=True,
|
|
210
|
+
)
|
|
211
|
+
return temp_df
|
|
212
|
+
return pd.DataFrame()
|
|
213
|
+
|
|
214
|
+
|
|
166
215
|
def stock_shareholder_change_ths(symbol: str = "688981") -> pd.DataFrame:
|
|
167
216
|
"""
|
|
168
217
|
同花顺-公司大事-股东持股变动
|
|
169
218
|
https://basic.10jqka.com.cn/new/688981/event.html
|
|
170
219
|
:param symbol: 股票代码
|
|
171
220
|
:type symbol: str
|
|
172
|
-
:return:
|
|
221
|
+
:return: 同花顺-公司大事-股东持股变动
|
|
173
222
|
:rtype: pandas.DataFrame
|
|
174
223
|
"""
|
|
175
224
|
url = f"https://basic.10jqka.com.cn/new/{symbol}/event.html"
|
|
@@ -267,5 +316,8 @@ if __name__ == "__main__":
|
|
|
267
316
|
)
|
|
268
317
|
print(stock_financial_cash_ths_df)
|
|
269
318
|
|
|
319
|
+
stock_management_change_ths_df = stock_management_change_ths(symbol="688981")
|
|
320
|
+
print(stock_management_change_ths_df)
|
|
321
|
+
|
|
270
322
|
stock_shareholder_change_ths_df = stock_shareholder_change_ths(symbol="688981")
|
|
271
323
|
print(stock_shareholder_change_ths_df)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: akshare
|
|
3
|
-
Version: 1.15.
|
|
3
|
+
Version: 1.15.14
|
|
4
4
|
Summary: AKShare is an elegant and simple financial data interface library for Python, built for human beings!
|
|
5
5
|
Home-page: https://github.com/akfamily/akshare
|
|
6
6
|
Author: AKFamily
|
|
@@ -40,7 +40,10 @@ Requires-Dist: akqmt; extra == "qmt"
|
|
|
40
40
|
|
|
41
41
|
**欢迎加入专注于财经数据和量化投资的知识社区,请点击[了解更多](https://akshare.akfamily.xyz/learn.html)**
|
|
42
42
|
|
|
43
|
-
|
|
43
|
+
**首门量化投资教程:《PyBroker-入门及实战》已经录制完成,目前已经上架!**
|
|
44
|
+
|
|
45
|
+
**更多视频教程已经发布:《AKShare-初阶-使用教学》、《AKShare-初阶-实战应用》、《AKShare-源码解析》、《开源项目巡礼》**,
|
|
46
|
+
详情请关注【数据科学实战】公众号,查看更多课程信息!
|
|
44
47
|
|
|
45
48
|
**AKQuant 量化教程请访问:[利用 PyBroker 进行量化投资](https://akquant.akfamily.xyz/)**
|
|
46
49
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
akshare/__init__.py,sha256=
|
|
1
|
+
akshare/__init__.py,sha256=opho0M5bD5jNYkgVSoGIbIp5VbprD6Nt7BgKEFQow7A,183328
|
|
2
2
|
akshare/datasets.py,sha256=-qdwaQjgBlftX84uM74KJqCYJYkQ50PV416_neA4uls,995
|
|
3
3
|
akshare/exceptions.py,sha256=WEJjIhSmJ_xXNW6grwV4nufE_cfmmyuhmueVGiN1VAg,878
|
|
4
4
|
akshare/request.py,sha256=HtFFf9MhfEibR-ETWe-1Tts6ELU4VKSqA-ghaXjegQM,4252
|
|
@@ -53,7 +53,7 @@ akshare/data/ths.js,sha256=AWPkHf3L2Il1UUL0F5qDqNn1dfU0OlZBNUbMf8AmI3Y,39664
|
|
|
53
53
|
akshare/economic/__init__.py,sha256=7dWJSrPs7KTj9_Ffs-ZS3aYDrf3v4nOnZYqwUZ3DJms,82
|
|
54
54
|
akshare/economic/cons.py,sha256=0JM61Eiro0xqXGnCaDSoLsw5iQWKAtqhRHcXmDfJgyw,16594
|
|
55
55
|
akshare/economic/macro_australia.py,sha256=JKNaedN19Rw15dn8bPur1yrsQA5j6hfX4tjgh7OCBHY,10801
|
|
56
|
-
akshare/economic/macro_bank.py,sha256=
|
|
56
|
+
akshare/economic/macro_bank.py,sha256=Hx250J4r8wBsYFdDyJJixXHEe4ReA1ZO4lBJQDdATYw,10721
|
|
57
57
|
akshare/economic/macro_canada.py,sha256=nNaZ3yZIvgTtRiQhwoEybMX6UpqszPKeixzYITv9ox0,15195
|
|
58
58
|
akshare/economic/macro_china.py,sha256=rQFlQqXKnORhG3ISSW_nlUgNNdTewZGIrUBA2xu0lV0,148646
|
|
59
59
|
akshare/economic/macro_china_hk.py,sha256=dIBc9gAYiHZUjXLF4c3yBK-2s3iLx46GcgJGlVJpv4c,5974
|
|
@@ -172,7 +172,7 @@ akshare/index/index_spot.py,sha256=HrXt2QC9i1pYEh7wyJPKjtexctzSIUyMjEzk5BQq_K8,1
|
|
|
172
172
|
akshare/index/index_stock_hk.py,sha256=nPFzRrjyiUpRK-OSDsdi5AFCKHNKqOVji6WJcQxOvNo,9781
|
|
173
173
|
akshare/index/index_stock_us_sina.py,sha256=IxOk4G49oasv7EfEQenL9-GLuelyUus6c4JPyRlaOzY,1551
|
|
174
174
|
akshare/index/index_stock_zh.py,sha256=WkXd3A8gc1hgPJPR4znRbLfrqMeTivLS7L449TlOBdE,14873
|
|
175
|
-
akshare/index/index_stock_zh_csindex.py,sha256=
|
|
175
|
+
akshare/index/index_stock_zh_csindex.py,sha256=jVF29Byn2guaZ4QsXwwL1C5qtqk_m1ja-dgDnKnfz8s,13267
|
|
176
176
|
akshare/index/index_sugar.py,sha256=B_Nj9Q6JP-Y_d7myZ0C79izTxxrbuZIp1Vv_CilVMOc,5006
|
|
177
177
|
akshare/index/index_sw.py,sha256=n757dUfNEsaZGk_eCxeetZi3pktBBYLVEMM7f9U_XjM,10174
|
|
178
178
|
akshare/index/index_yw.py,sha256=6FF38kooLQulnMTqAd1__TNWip4XC1VA72k3T049xYc,4319
|
|
@@ -323,7 +323,7 @@ akshare/stock_feature/stock_hsgt_em.py,sha256=1S18-GB9RvDP7tTvKR_W-BFSoKOPbpBTrb
|
|
|
323
323
|
akshare/stock_feature/stock_hsgt_exchange_rate.py,sha256=YvhvdGx1nBJ_1swos1YNOtzy0GMFYo8MgNBh5QKphtE,6838
|
|
324
324
|
akshare/stock_feature/stock_hsgt_min_em.py,sha256=KLeez7MQwBAcO-RT7n41LOikUfvXDGK0-G1n9av5mtY,2883
|
|
325
325
|
akshare/stock_feature/stock_info.py,sha256=oLeWzDAEO0GCKGaNE-k1yUKn11qCkgENEmt-1nJq6-M,9912
|
|
326
|
-
akshare/stock_feature/stock_inner_trade_xq.py,sha256=
|
|
326
|
+
akshare/stock_feature/stock_inner_trade_xq.py,sha256=jsARS5It6_UNn3WL8vnTK4F90Rx1dMvarxtiVbzOLrM,2682
|
|
327
327
|
akshare/stock_feature/stock_irm_cninfo.py,sha256=xD028gllzaHYj6xU9pRKvSLI_gIkVhCTnFH0dSPv1gY,6112
|
|
328
328
|
akshare/stock_feature/stock_jgdy_em.py,sha256=jmXRvmIwk7IY3SKAGaxi5M7WM7V8yY51UOPg94YQR9Q,6003
|
|
329
329
|
akshare/stock_feature/stock_lh_yybpm.py,sha256=7VlqA-UGbfiQ4ez7Ah9znIfUcVI-7Fxxz_V03JO8LTY,3614
|
|
@@ -357,7 +357,7 @@ akshare/stock_feature/ths.js,sha256=AWPkHf3L2Il1UUL0F5qDqNn1dfU0OlZBNUbMf8AmI3Y,
|
|
|
357
357
|
akshare/stock_fundamental/__init__.py,sha256=jiXoO9OXiMxB0wHaPQkuxNckYuoFKtzuhZL1ytnE2nQ,82
|
|
358
358
|
akshare/stock_fundamental/stock_finance.py,sha256=WuYvLo8xZxH-VS-6P-S31yzsKA1ojrwegcLXP2byle4,30676
|
|
359
359
|
akshare/stock_fundamental/stock_finance_hk.py,sha256=Tn_vhGqxdnNDaY6Rd_M6rDvYOYpWMKGGiHudcJkShq8,6917
|
|
360
|
-
akshare/stock_fundamental/stock_finance_ths.py,sha256=
|
|
360
|
+
akshare/stock_fundamental/stock_finance_ths.py,sha256=4G2sTqZHJbhVBtBAQaWoUx41xekCHdw_fKHgPB07avg,11455
|
|
361
361
|
akshare/stock_fundamental/stock_hold.py,sha256=h8V5v_0YOi3FJPc1w95WBaO0v3n87lcufcUlu-i6XXk,5394
|
|
362
362
|
akshare/stock_fundamental/stock_ipo_declare.py,sha256=18j2542TT2nCJ1HWBcT6-HupRbXvesA30qqejknn-kM,1809
|
|
363
363
|
akshare/stock_fundamental/stock_kcb_detail_sse.py,sha256=MBanq3sDvb0OTbUl_gg7avDUQg_3Ugzqr43cB43fp60,940
|
|
@@ -383,8 +383,8 @@ akshare/utils/token_process.py,sha256=K4rGXjh_tgugbRcyOK2h2x0jP3PT65IIK7nxhUKhOe
|
|
|
383
383
|
akshare/utils/tqdm.py,sha256=MuPNwcswkOGjwWQOMWXi9ZvQ_RmW4obCWRj2i7HM7FE,847
|
|
384
384
|
tests/__init__.py,sha256=gNzhlO0UPjFq6Ieb38kaVIODXv4cTDByrdohAZnDYt4,82
|
|
385
385
|
tests/test_func.py,sha256=j1MGYbZI2if2j_LY1S4FLsf4qfq4NwVqD5wmRlv5Log,832
|
|
386
|
-
akshare-1.15.
|
|
387
|
-
akshare-1.15.
|
|
388
|
-
akshare-1.15.
|
|
389
|
-
akshare-1.15.
|
|
390
|
-
akshare-1.15.
|
|
386
|
+
akshare-1.15.14.dist-info/LICENSE,sha256=mmSZCPgfHiVw34LXuFArd-SUgQtBJ_QsIlh-kWlDHfs,1073
|
|
387
|
+
akshare-1.15.14.dist-info/METADATA,sha256=TPX6vATWb5loTldlJ_0g-WXp9YkZqnAqEFdMRHWzZhI,14244
|
|
388
|
+
akshare-1.15.14.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
|
|
389
|
+
akshare-1.15.14.dist-info/top_level.txt,sha256=jsf9ZzZPmHaISTVumQPsAw7vv7Yv-PdEVW70SMEelQQ,14
|
|
390
|
+
akshare-1.15.14.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|