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 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.12"
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
 
@@ -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,10 +1,11 @@
1
1
  # -*- coding:utf-8 -*-
2
2
  # !/usr/bin/env python
3
3
  """
4
- Date: 2022/4/29 17:01
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
- 'size': '100000',
22
- 'page': '1',
23
- 'extend': 'true',
24
- '_': '1651223013040',
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) Chrome/100.0.4896.127 Safari/537.36",
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 = 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.12
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
- **相关视频教程已经发布:《AKShare-初阶-使用教学》、《AKShare-初阶-实战应用》、《AKShare-源码解析》、《开源项目巡礼》**,详情请访问[课程](https://app3rqjh1z21630.h5.xiaoeknow.com)查看更多课程信息!
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=AVoSUwfINg2hFwgDGt6K63wvHLg52G94W0ODgPWxG4Q,183191
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
@@ -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=XM-Q_l6_KH0rKDDhgnhayv7siIliTVddLtnEJl9fRq4,2541
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=Ibo-1hVkJoDznJFnijEUuOF8a_QZ2dgxeHXTaoQ3uJg,9559
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.12.dist-info/LICENSE,sha256=mmSZCPgfHiVw34LXuFArd-SUgQtBJ_QsIlh-kWlDHfs,1073
387
- akshare-1.15.12.dist-info/METADATA,sha256=D4LrV2g8mXG_Me8URess4pxUW7fBclQebphNhnLMZHE,14152
388
- akshare-1.15.12.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
389
- akshare-1.15.12.dist-info/top_level.txt,sha256=jsf9ZzZPmHaISTVumQPsAw7vv7Yv-PdEVW70SMEelQQ,14
390
- akshare-1.15.12.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,,