akshare 1.15.13__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 CHANGED
@@ -2923,9 +2923,10 @@ amac_manager_cancelled_info # 中国证券投资基金业协会-信息公示-诚
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
2925
  1.15.13 fix: fix stock_inner_trade_xq indicator
2926
+ 1.15.14 fix: fix macro_bank_usa_interest_rate indicator
2926
2927
  """
2927
2928
 
2928
- __version__ = "1.15.13"
2929
+ __version__ = "1.15.14"
2929
2930
  __author__ = "AKFamily"
2930
2931
 
2931
2932
  import sys
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding:utf-8 -*-
3
3
  """
4
- Date: 2022/5/25 21:11
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
- 美联储利率决议报告, 数据区间从 19820927-至今
30
+ 利率决议报告公共函数
31
31
  https://datacenter.jin10.com/reportType/dc_usa_interest_rate_decision
32
- https://cdn.jin10.com/dc/reports/dc_usa_interest_rate_decision_all.js?v=1578581921
33
- :return: 美联储利率决议报告-今值(%)
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
- "accept": "*/*",
39
- "accept-encoding": "gzip, deflate, br",
40
- "accept-language": "zh-CN,zh;q=0.9,en;q=0.8",
41
- "cache-control": "no-cache",
42
- "origin": "https://datacenter.jin10.com",
43
- "pragma": "no-cache",
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
- url = "https://datacenter-api.jin10.com/reports/list_v2"
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": "24",
54
+ "attr_id": attr_id,
57
55
  "_": str(int(round(t * 1000))),
58
56
  }
59
- big_df = pd.DataFrame()
60
- while True:
61
- r = requests.get(url, params=params, headers=headers)
62
- data_json = r.json()
63
- if not data_json["data"]["values"]:
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
- .date()
74
- .isoformat()
75
- )
76
- params.update({"max_date": f"{last_date_str}"})
77
- big_df["商品"] = "美联储利率决议"
78
- big_df.columns = [
79
- "日期",
80
- "今值",
81
- "预测值",
82
- "前值",
83
- "商品",
84
- ]
85
- big_df = big_df[
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
- big_df["今值"] = pd.to_numeric(big_df["今值"])
96
- big_df["预测值"] = pd.to_numeric(big_df["预测值"])
97
- big_df["前值"] = pd.to_numeric(big_df["前值"])
98
- big_df.sort_values(["日期"], inplace=True)
99
- big_df.reset_index(inplace=True, drop=True)
100
- return big_df
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
- t = time.time()
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
- t = time.time()
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
- t = time.time()
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
- t = time.time()
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
- t = time.time()
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
- t = time.time()
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
- t = time.time()
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
- t = time.time()
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
- t = time.time()
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=-1,
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": -1,
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,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: akshare
3
- Version: 1.15.13
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
@@ -1,4 +1,4 @@
1
- akshare/__init__.py,sha256=FKX7WMccB5Id23VL4nmeqolblK3dC_INyGCwkOsSrwE,183272
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=vElFSGa0O4LqFgGHNyzxjlaYQPWa0EER-ET5yn_uv3M,29134
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=kRWl1c30OOhLj_mLCBoxOJdgE9KxEUqJf7Hjmu-tLfo,13110
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
@@ -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.13.dist-info/LICENSE,sha256=mmSZCPgfHiVw34LXuFArd-SUgQtBJ_QsIlh-kWlDHfs,1073
387
- akshare-1.15.13.dist-info/METADATA,sha256=-MOPXh9wvdFnbIDVUNBNOobh_VUCEUXn5dX0w4ZjlKA,14244
388
- akshare-1.15.13.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
389
- akshare-1.15.13.dist-info/top_level.txt,sha256=jsf9ZzZPmHaISTVumQPsAw7vv7Yv-PdEVW70SMEelQQ,14
390
- akshare-1.15.13.dist-info/RECORD,,
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,,