akshare 1.15.97__py3-none-any.whl → 1.15.99__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
@@ -3007,9 +3007,11 @@ amac_manager_cancelled_info # 中国证券投资基金业协会-信息公示-诚
3007
3007
  1.15.95 fix: fix stock_us_spot_em interface
3008
3008
  1.15.96 fix: fix bond_cov_comparison interface
3009
3009
  1.15.97 fix: fix stock_intraday_em interface
3010
+ 1.15.98 fix: fix stock_board_concept_name_em interface
3011
+ 1.15.99 fix: fix stock_esg_zd_sina interface
3010
3012
  """
3011
3013
 
3012
- __version__ = "1.15.97"
3014
+ __version__ = "1.15.99"
3013
3015
  __author__ = "AKFamily"
3014
3016
 
3015
3017
  import sys
@@ -478,7 +478,7 @@ if __name__ == "__main__":
478
478
 
479
479
  index_zh_a_hist_min_em_df = index_zh_a_hist_min_em(
480
480
  symbol="000001",
481
- period="15",
481
+ period="5",
482
482
  start_date="2025-02-14 09:30:00",
483
483
  end_date="2025-02-14 19:00:00",
484
484
  )
@@ -8,6 +8,7 @@ http://www.szse.cn/market/product/option/index.html
8
8
  http://www.cffex.com.cn/hs300gzqq/
9
9
  http://www.cffex.com.cn/zz1000gzqq/
10
10
  """
11
+
11
12
  from io import BytesIO
12
13
 
13
14
  import pandas as pd
@@ -69,7 +70,7 @@ def option_finance_sse_underlying(symbol: str = "华夏科创50ETF期权") -> pd
69
70
 
70
71
 
71
72
  def option_finance_board(
72
- symbol: str = "嘉实沪深300ETF期权", end_month: str = "2306"
73
+ symbol: str = "嘉实沪深300ETF期权", end_month: str = "2306"
73
74
  ) -> pd.DataFrame:
74
75
  """
75
76
  期权当前交易日的行情数据
@@ -79,7 +80,8 @@ def option_finance_board(
79
80
  http://www.szse.cn/market/product/option/index.html
80
81
  http://www.cffex.com.cn/hs300gzqq/
81
82
  http://www.cffex.com.cn/zz1000gzqq/
82
- :param symbol: choice of {"华夏上证50ETF期权", "华泰柏瑞沪深300ETF期权", "南方中证500ETF期权", "华夏科创50ETF期权", "易方达科创50ETF期权", "嘉实沪深300ETF期权", "沪深300股指期权", "中证1000股指期权", "上证50股指期权"}
83
+ :param symbol: choice of {"华夏上证50ETF期权", "华泰柏瑞沪深300ETF期权", "南方中证500ETF期权",
84
+ "华夏科创50ETF期权", "易方达科创50ETF期权", "嘉实沪深300ETF期权", "沪深300股指期权", "中证1000股指期权", "上证50股指期权"}
83
85
  :type symbol: str
84
86
  :param end_month: 2003; 2020 年 3 月到期的期权
85
87
  :type end_month: str
@@ -100,7 +102,15 @@ def option_finance_board(
100
102
  raw_data.columns = ["合约交易代码", "当前价", "涨跌幅", "前结价", "行权价"]
101
103
  raw_data["数量"] = [data_json["total"]] * data_json["total"]
102
104
  raw_data.reset_index(inplace=True)
103
- raw_data.columns = ["日期", "合约交易代码", "当前价", "涨跌幅", "前结价", "行权价", "数量"]
105
+ raw_data.columns = [
106
+ "日期",
107
+ "合约交易代码",
108
+ "当前价",
109
+ "涨跌幅",
110
+ "前结价",
111
+ "行权价",
112
+ "数量",
113
+ ]
104
114
  return raw_data
105
115
  elif symbol == "华泰柏瑞沪深300ETF期权":
106
116
  r = requests.get(
@@ -115,7 +125,15 @@ def option_finance_board(
115
125
  raw_data.columns = ["合约交易代码", "当前价", "涨跌幅", "前结价", "行权价"]
116
126
  raw_data["数量"] = [data_json["total"]] * data_json["total"]
117
127
  raw_data.reset_index(inplace=True)
118
- raw_data.columns = ["日期", "合约交易代码", "当前价", "涨跌幅", "前结价", "行权价", "数量"]
128
+ raw_data.columns = [
129
+ "日期",
130
+ "合约交易代码",
131
+ "当前价",
132
+ "涨跌幅",
133
+ "前结价",
134
+ "行权价",
135
+ "数量",
136
+ ]
119
137
  return raw_data
120
138
  elif symbol == "南方中证500ETF期权":
121
139
  r = requests.get(
@@ -130,7 +148,15 @@ def option_finance_board(
130
148
  raw_data.columns = ["合约交易代码", "当前价", "涨跌幅", "前结价", "行权价"]
131
149
  raw_data["数量"] = [data_json["total"]] * data_json["total"]
132
150
  raw_data.reset_index(inplace=True)
133
- raw_data.columns = ["日期", "合约交易代码", "当前价", "涨跌幅", "前结价", "行权价", "数量"]
151
+ raw_data.columns = [
152
+ "日期",
153
+ "合约交易代码",
154
+ "当前价",
155
+ "涨跌幅",
156
+ "前结价",
157
+ "行权价",
158
+ "数量",
159
+ ]
134
160
  return raw_data
135
161
  elif symbol == "华夏科创50ETF期权":
136
162
  r = requests.get(
@@ -145,7 +171,15 @@ def option_finance_board(
145
171
  raw_data.columns = ["合约交易代码", "当前价", "涨跌幅", "前结价", "行权价"]
146
172
  raw_data["数量"] = [data_json["total"]] * data_json["total"]
147
173
  raw_data.reset_index(inplace=True)
148
- raw_data.columns = ["日期", "合约交易代码", "当前价", "涨跌幅", "前结价", "行权价", "数量"]
174
+ raw_data.columns = [
175
+ "日期",
176
+ "合约交易代码",
177
+ "当前价",
178
+ "涨跌幅",
179
+ "前结价",
180
+ "行权价",
181
+ "数量",
182
+ ]
149
183
  return raw_data
150
184
  elif symbol == "易方达科创50ETF期权":
151
185
  r = requests.get(
@@ -160,7 +194,15 @@ def option_finance_board(
160
194
  raw_data.columns = ["合约交易代码", "当前价", "涨跌幅", "前结价", "行权价"]
161
195
  raw_data["数量"] = [data_json["total"]] * data_json["total"]
162
196
  raw_data.reset_index(inplace=True)
163
- raw_data.columns = ["日期", "合约交易代码", "当前价", "涨跌幅", "前结价", "行权价", "数量"]
197
+ raw_data.columns = [
198
+ "日期",
199
+ "合约交易代码",
200
+ "当前价",
201
+ "涨跌幅",
202
+ "前结价",
203
+ "行权价",
204
+ "数量",
205
+ ]
164
206
  return raw_data
165
207
  elif symbol == "嘉实沪深300ETF期权":
166
208
  url = "http://www.szse.cn/api/report/ShowReport/data"
@@ -206,7 +248,7 @@ def option_finance_board(
206
248
  return big_df
207
249
  elif symbol == "沪深300股指期权":
208
250
  headers = {
209
- 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36'
251
+ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36"
210
252
  }
211
253
  r = requests.get(CFFEX_OPTION_URL_300, headers=headers)
212
254
  raw_df = pd.read_table(BytesIO(r.content), sep=",")
@@ -224,7 +266,7 @@ def option_finance_board(
224
266
  return raw_df
225
267
  elif symbol == "中证1000股指期权":
226
268
  headers = {
227
- 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36'
269
+ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36"
228
270
  }
229
271
  url = "http://www.cffex.com.cn/quote_MO.txt"
230
272
  r = requests.get(url, headers=headers)
@@ -243,7 +285,7 @@ def option_finance_board(
243
285
  return raw_df
244
286
  elif symbol == "上证50股指期权":
245
287
  headers = {
246
- 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36'
288
+ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36"
247
289
  }
248
290
  url = "http://www.cffex.com.cn/quote_HO.txt"
249
291
  r = requests.get(url, headers=headers)
@@ -298,7 +340,9 @@ if __name__ == "__main__":
298
340
  )
299
341
  print(option_finance_board_df)
300
342
 
301
- option_finance_board_df = option_finance_board(symbol="沪深300股指期权", end_month="2306")
343
+ option_finance_board_df = option_finance_board(
344
+ symbol="沪深300股指期权", end_month="2306"
345
+ )
302
346
  print(option_finance_board_df)
303
347
 
304
348
  option_finance_board_df = option_finance_board(
@@ -306,5 +350,7 @@ if __name__ == "__main__":
306
350
  )
307
351
  print(option_finance_board_df)
308
352
 
309
- option_finance_board_df = option_finance_board(symbol="上证50股指期权", end_month="2306")
353
+ option_finance_board_df = option_finance_board(
354
+ symbol="上证50股指期权", end_month="2306"
355
+ )
310
356
  print(option_finance_board_df)
@@ -1,15 +1,21 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding:utf-8 -*-
3
3
  """
4
- Date: 2023/6/29 17:13
4
+ Date: 2025/2/17 14:10
5
5
  Desc: 东方财富-沪深板块-概念板块
6
6
  https://quote.eastmoney.com/center/boardlist.html#concept_board
7
7
  """
8
8
 
9
- import requests
9
+ import math
10
+ from functools import lru_cache
11
+
10
12
  import pandas as pd
13
+ import requests
11
14
 
15
+ from akshare.utils.tqdm import get_tqdm
12
16
 
17
+
18
+ @lru_cache()
13
19
  def stock_board_concept_name_em() -> pd.DataFrame:
14
20
  """
15
21
  东方财富网-行情中心-沪深京板块-概念板块-名称
@@ -20,20 +26,33 @@ def stock_board_concept_name_em() -> pd.DataFrame:
20
26
  url = "https://79.push2.eastmoney.com/api/qt/clist/get"
21
27
  params = {
22
28
  "pn": "1",
23
- "pz": "2000",
29
+ "pz": "200",
24
30
  "po": "1",
25
31
  "np": "1",
26
32
  "ut": "bd1d9ddb04089700cf9c27f6f7426281",
27
33
  "fltt": "2",
28
34
  "invt": "2",
29
- "fid": "f3",
35
+ "fid": "f12",
30
36
  "fs": "m:90 t:3 f:!50",
31
37
  "fields": "f2,f3,f4,f8,f12,f14,f15,f16,f17,f18,f20,f21,f24,f25,f22,f33,f11,f62,f128,f124,f107,f104,f105,f136",
32
38
  "_": "1626075887768",
33
39
  }
34
40
  r = requests.get(url, params=params)
35
41
  data_json = r.json()
36
- temp_df = pd.DataFrame(data_json["data"]["diff"])
42
+ total_page = math.ceil(data_json["data"]["total"] / 200)
43
+ temp_list = []
44
+ tqdm = get_tqdm()
45
+ for page in tqdm(range(1, total_page + 1), leave=False):
46
+ params.update(
47
+ {
48
+ "pn": page,
49
+ }
50
+ )
51
+ r = requests.get(url, params=params, timeout=15)
52
+ data_json = r.json()
53
+ inner_temp_df = pd.DataFrame(data_json["data"]["diff"])
54
+ temp_list.append(inner_temp_df)
55
+ temp_df = pd.concat(temp_list, ignore_index=True)
37
56
  temp_df.reset_index(inplace=True)
38
57
  temp_df["index"] = range(1, len(temp_df) + 1)
39
58
  temp_df.columns = [
@@ -311,7 +330,7 @@ def stock_board_concept_cons_em(symbol: str = "融资融券") -> pd.DataFrame:
311
330
  url = "https://29.push2.eastmoney.com/api/qt/clist/get"
312
331
  params = {
313
332
  "pn": "1",
314
- "pz": "5000",
333
+ "pz": "200",
315
334
  "po": "1",
316
335
  "np": "1",
317
336
  "ut": "bd1d9ddb04089700cf9c27f6f7426281",
@@ -325,7 +344,20 @@ def stock_board_concept_cons_em(symbol: str = "融资融券") -> pd.DataFrame:
325
344
  }
326
345
  r = requests.get(url, params=params)
327
346
  data_json = r.json()
328
- temp_df = pd.DataFrame(data_json["data"]["diff"])
347
+ total_page = math.ceil(data_json["data"]["total"] / 200)
348
+ temp_list = []
349
+ tqdm = get_tqdm()
350
+ for page in tqdm(range(1, total_page + 1), leave=False):
351
+ params.update(
352
+ {
353
+ "pn": page,
354
+ }
355
+ )
356
+ r = requests.get(url, params=params, timeout=15)
357
+ data_json = r.json()
358
+ inner_temp_df = pd.DataFrame(data_json["data"]["diff"])
359
+ temp_list.append(inner_temp_df)
360
+ temp_df = pd.concat(temp_list, ignore_index=True)
329
361
  temp_df.reset_index(inplace=True)
330
362
  temp_df["index"] = range(1, len(temp_df) + 1)
331
363
  temp_df.columns = [
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding:utf-8 -*-
3
3
  """
4
- Date: 2024/3/25 12:30
4
+ Date: 2025/2/17 14:30
5
5
  Desc: 东方财富网-数据中心-资金流向
6
6
  https://data.eastmoney.com/zjlx/detail.html
7
7
  """
@@ -654,7 +654,7 @@ def _get_stock_sector_fund_flow_summary_code() -> dict:
654
654
  "pn": "1",
655
655
  "pz": "5000",
656
656
  "po": "1",
657
- "np": "1",
657
+ "np": "2",
658
658
  "ut": "b2884a393a59ad64002292a3e90d46a5",
659
659
  "fltt": "2",
660
660
  "invt": "2",
@@ -667,7 +667,7 @@ def _get_stock_sector_fund_flow_summary_code() -> dict:
667
667
  }
668
668
  r = requests.get(url, params=params, headers=headers)
669
669
  data_json = r.json()
670
- temp_df = pd.DataFrame(data_json["data"]["diff"])
670
+ temp_df = pd.DataFrame(data_json["data"]["diff"]).T
671
671
  name_code_map = dict(zip(temp_df["f14"], temp_df["f12"]))
672
672
  return name_code_map
673
673
 
@@ -1061,7 +1061,7 @@ def _get_stock_concept_fund_flow_summary_code() -> dict:
1061
1061
  "pn": "1",
1062
1062
  "pz": "5000",
1063
1063
  "po": "1",
1064
- "np": "1",
1064
+ "np": "2",
1065
1065
  "fields": "f12,f13,f14,f62",
1066
1066
  "fid": "f62",
1067
1067
  "fs": "m:90+t:3",
@@ -1070,7 +1070,7 @@ def _get_stock_concept_fund_flow_summary_code() -> dict:
1070
1070
  }
1071
1071
  r = requests.get(url, params=params, headers=headers)
1072
1072
  data_json = r.json()
1073
- temp_df = pd.DataFrame(data_json["data"]["diff"])
1073
+ temp_df = pd.DataFrame(data_json["data"]["diff"]).T
1074
1074
  name_code_map = dict(zip(temp_df["f14"], temp_df["f12"]))
1075
1075
  return name_code_map
1076
1076
 
@@ -1332,7 +1332,7 @@ if __name__ == "__main__":
1332
1332
  stock_sector_fund_flow_hist_df = stock_sector_fund_flow_hist(symbol="电源设备")
1333
1333
  print(stock_sector_fund_flow_hist_df)
1334
1334
 
1335
- stock_concept_fund_flow_hist_df = stock_concept_fund_flow_hist(symbol="锂电池")
1335
+ stock_concept_fund_flow_hist_df = stock_concept_fund_flow_hist(symbol="电源设备")
1336
1336
  print(stock_concept_fund_flow_hist_df)
1337
1337
 
1338
1338
  stock_main_fund_flow_df = stock_main_fund_flow(symbol="全部股票")
@@ -7,10 +7,10 @@ https://finance.sina.com.cn/esg/
7
7
  """
8
8
 
9
9
  import math
10
+ from akshare.utils.tqdm import get_tqdm
10
11
 
11
12
  import pandas as pd
12
13
  import requests
13
- from tqdm import tqdm
14
14
 
15
15
 
16
16
  def stock_esg_msci_sina() -> pd.DataFrame:
@@ -25,6 +25,7 @@ def stock_esg_msci_sina() -> pd.DataFrame:
25
25
  data_json = r.json()
26
26
  page_num = math.ceil(int(data_json["result"]["data"]["total"]) / 100)
27
27
  big_df = pd.DataFrame()
28
+ tqdm = get_tqdm()
28
29
  for page in tqdm(range(1, page_num + 1), leave=False):
29
30
  headers = {
30
31
  "Referer": "https://finance.sina.com.cn/",
@@ -175,6 +176,7 @@ def stock_esg_rate_sina() -> pd.DataFrame:
175
176
  data_json = r.json()
176
177
  page_num = math.ceil(int(data_json["result"]["data"]["info"]["total"]) / 200)
177
178
  big_df = pd.DataFrame()
179
+ tqdm = get_tqdm()
178
180
  for page in tqdm(range(1, page_num + 1), leave=False):
179
181
  url = f"https://global.finance.sina.com.cn/api/openapi.php/EsgService.getEsgStocks?page={page}&num=200"
180
182
  r = requests.get(url)
@@ -223,10 +225,20 @@ def stock_esg_zd_sina() -> pd.DataFrame:
223
225
  :return: 秩鼎
224
226
  :rtype: pandas.DataFrame
225
227
  """
226
- url = "https://global.finance.sina.com.cn/api/openapi.php/EsgService.getZdEsgStocks?p=1&num=20000"
227
- r = requests.get(url)
228
+ url = "https://global.finance.sina.com.cn/api/openapi.php/EsgService.getZdEsgStocks"
229
+ params = {"p": "1", "num": "100"}
230
+ r = requests.get(url, params=params)
228
231
  data_json = r.json()
229
- big_df = pd.DataFrame(data_json["result"]["data"]["data"])
232
+ tqdm = get_tqdm()
233
+ total_page = math.ceil(int(data_json["result"]["data"]["total"]) / 100)
234
+ temp_list = []
235
+ for page in tqdm(range(1, total_page + 1), leave=False):
236
+ params = {"p": str(page), "num": "100"}
237
+ r = requests.get(url, params=params)
238
+ data_json = r.json()
239
+ temp_df = pd.DataFrame(data_json["result"]["data"]["data"])
240
+ temp_list.append(temp_df)
241
+ big_df = pd.concat(temp_list, ignore_index=True)
230
242
  big_df.rename(
231
243
  columns={
232
244
  "ticker": "股票代码",
@@ -265,6 +277,7 @@ def stock_esg_hz_sina() -> pd.DataFrame:
265
277
  data_json = r.json()
266
278
  total_page = math.ceil(int(data_json["result"]["data"]["total"]) / 100)
267
279
  big_df = pd.DataFrame()
280
+ tqdm = get_tqdm()
268
281
  for page in tqdm(range(1, total_page + 1), leave=False):
269
282
  params = {"p": str(page), "num": "100"}
270
283
  r = requests.get(url, params=params)
@@ -6,14 +6,11 @@ Desc: 东方财富网-行情首页-沪深京 A 股
6
6
  https://quote.eastmoney.com/
7
7
  """
8
8
 
9
- import math
10
9
  from functools import lru_cache
11
10
 
12
11
  import pandas as pd
13
12
  import requests
14
13
 
15
- from akshare.utils.tqdm import get_tqdm
16
-
17
14
 
18
15
  def stock_zh_a_spot_em() -> pd.DataFrame:
19
16
  """
@@ -25,9 +22,9 @@ def stock_zh_a_spot_em() -> pd.DataFrame:
25
22
  url = "https://82.push2.eastmoney.com/api/qt/clist/get"
26
23
  params = {
27
24
  "pn": "1",
28
- "pz": "200",
25
+ "pz": "20000",
29
26
  "po": "1",
30
- "np": "1",
27
+ "np": "2",
31
28
  "ut": "bd1d9ddb04089700cf9c27f6f7426281",
32
29
  "fltt": "2",
33
30
  "invt": "2",
@@ -39,20 +36,7 @@ def stock_zh_a_spot_em() -> pd.DataFrame:
39
36
  }
40
37
  r = requests.get(url, params=params, timeout=15)
41
38
  data_json = r.json()
42
- total_page = math.ceil(data_json["data"]["total"] / 200)
43
- temp_list = []
44
- tqdm = get_tqdm()
45
- for page in tqdm(range(1, total_page + 1), leave=False):
46
- params.update(
47
- {
48
- "pn": page,
49
- }
50
- )
51
- r = requests.get(url, params=params, timeout=15)
52
- data_json = r.json()
53
- inner_temp_df = pd.DataFrame(data_json["data"]["diff"])
54
- temp_list.append(inner_temp_df)
55
- temp_df = pd.concat(temp_list, ignore_index=True)
39
+ temp_df = pd.DataFrame(data_json["data"]["diff"]).T
56
40
  temp_df.columns = [
57
41
  "_",
58
42
  "最新价",
@@ -151,9 +135,9 @@ def stock_sh_a_spot_em() -> pd.DataFrame:
151
135
  url = "https://82.push2.eastmoney.com/api/qt/clist/get"
152
136
  params = {
153
137
  "pn": "1",
154
- "pz": "200",
138
+ "pz": "50000",
155
139
  "po": "1",
156
- "np": "1",
140
+ "np": "2",
157
141
  "ut": "bd1d9ddb04089700cf9c27f6f7426281",
158
142
  "fltt": "2",
159
143
  "invt": "2",
@@ -167,20 +151,7 @@ def stock_sh_a_spot_em() -> pd.DataFrame:
167
151
  data_json = r.json()
168
152
  if not data_json["data"]["diff"]:
169
153
  return pd.DataFrame()
170
- total_page = math.ceil(data_json["data"]["total"] / 200)
171
- temp_list = []
172
- tqdm = get_tqdm()
173
- for page in tqdm(range(1, total_page + 1), leave=False):
174
- params.update(
175
- {
176
- "pn": page,
177
- }
178
- )
179
- r = requests.get(url, params=params, timeout=15)
180
- data_json = r.json()
181
- inner_temp_df = pd.DataFrame(data_json["data"]["diff"])
182
- temp_list.append(inner_temp_df)
183
- temp_df = pd.concat(temp_list, ignore_index=True)
154
+ temp_df = pd.DataFrame(data_json["data"]["diff"]).T
184
155
  temp_df.columns = [
185
156
  "_",
186
157
  "最新价",
@@ -279,9 +250,9 @@ def stock_sz_a_spot_em() -> pd.DataFrame:
279
250
  url = "https://82.push2.eastmoney.com/api/qt/clist/get"
280
251
  params = {
281
252
  "pn": "1",
282
- "pz": "200",
253
+ "pz": "50000",
283
254
  "po": "1",
284
- "np": "1",
255
+ "np": "2",
285
256
  "ut": "bd1d9ddb04089700cf9c27f6f7426281",
286
257
  "fltt": "2",
287
258
  "invt": "2",
@@ -295,20 +266,7 @@ def stock_sz_a_spot_em() -> pd.DataFrame:
295
266
  data_json = r.json()
296
267
  if not data_json["data"]["diff"]:
297
268
  return pd.DataFrame()
298
- total_page = math.ceil(data_json["data"]["total"] / 200)
299
- temp_list = []
300
- tqdm = get_tqdm()
301
- for page in tqdm(range(1, total_page + 1), leave=False):
302
- params.update(
303
- {
304
- "pn": page,
305
- }
306
- )
307
- r = requests.get(url, params=params, timeout=15)
308
- data_json = r.json()
309
- inner_temp_df = pd.DataFrame(data_json["data"]["diff"])
310
- temp_list.append(inner_temp_df)
311
- temp_df = pd.concat(temp_list, ignore_index=True)
269
+ temp_df = pd.DataFrame(data_json["data"]["diff"]).T
312
270
  temp_df.columns = [
313
271
  "_",
314
272
  "最新价",
@@ -409,7 +367,7 @@ def stock_bj_a_spot_em() -> pd.DataFrame:
409
367
  "pn": "1",
410
368
  "pz": "50000",
411
369
  "po": "1",
412
- "np": "1",
370
+ "np": "2",
413
371
  "ut": "bd1d9ddb04089700cf9c27f6f7426281",
414
372
  "fltt": "2",
415
373
  "invt": "2",
@@ -419,11 +377,11 @@ def stock_bj_a_spot_em() -> pd.DataFrame:
419
377
  ",f25,f22,f11,f62,f128,f136,f115,f152",
420
378
  "_": "1623833739532",
421
379
  }
422
- r = requests.get(url, timeout=15, params=params)
380
+ r = requests.get(url, params=params, timeout=15)
423
381
  data_json = r.json()
424
382
  if not data_json["data"]["diff"]:
425
383
  return pd.DataFrame()
426
- temp_df = pd.DataFrame(data_json["data"]["diff"])
384
+ temp_df = pd.DataFrame(data_json["data"]["diff"]).T
427
385
  temp_df.columns = [
428
386
  "_",
429
387
  "最新价",
@@ -644,7 +602,7 @@ def stock_cy_a_spot_em() -> pd.DataFrame:
644
602
  "pn": "1",
645
603
  "pz": "50000",
646
604
  "po": "1",
647
- "np": "1",
605
+ "np": "2",
648
606
  "ut": "bd1d9ddb04089700cf9c27f6f7426281",
649
607
  "fltt": "2",
650
608
  "invt": "2",
@@ -659,7 +617,7 @@ def stock_cy_a_spot_em() -> pd.DataFrame:
659
617
  data_json = r.json()
660
618
  if not data_json["data"]["diff"]:
661
619
  return pd.DataFrame()
662
- temp_df = pd.DataFrame(data_json["data"]["diff"])
620
+ temp_df = pd.DataFrame(data_json["data"]["diff"]).T
663
621
  temp_df.columns = [
664
622
  "_",
665
623
  "最新价",
@@ -760,7 +718,7 @@ def stock_kc_a_spot_em() -> pd.DataFrame:
760
718
  "pn": "1",
761
719
  "pz": "50000",
762
720
  "po": "1",
763
- "np": "1",
721
+ "np": "2",
764
722
  "ut": "bd1d9ddb04089700cf9c27f6f7426281",
765
723
  "fltt": "2",
766
724
  "invt": "2",
@@ -771,11 +729,11 @@ def stock_kc_a_spot_em() -> pd.DataFrame:
771
729
  "f21,f23,f24,f25,f22,f11,f62,f128,f136,f115,f152",
772
730
  "_": "1623833739532",
773
731
  }
774
- r = requests.get(url, timeout=15, params=params)
732
+ r = requests.get(url, params=params, timeout=15)
775
733
  data_json = r.json()
776
734
  if not data_json["data"]["diff"]:
777
735
  return pd.DataFrame()
778
- temp_df = pd.DataFrame(data_json["data"]["diff"])
736
+ temp_df = pd.DataFrame(data_json["data"]["diff"]).T
779
737
  temp_df.columns = [
780
738
  "_",
781
739
  "最新价",
@@ -876,7 +834,7 @@ def stock_zh_b_spot_em() -> pd.DataFrame:
876
834
  "pn": "1",
877
835
  "pz": "50000",
878
836
  "po": "1",
879
- "np": "1",
837
+ "np": "2",
880
838
  "ut": "bd1d9ddb04089700cf9c27f6f7426281",
881
839
  "fltt": "2",
882
840
  "invt": "2",
@@ -886,11 +844,11 @@ def stock_zh_b_spot_em() -> pd.DataFrame:
886
844
  ",f21,f23,f24,f25,f22,f11,f62,f128,f136,f115,f152",
887
845
  "_": "1623833739532",
888
846
  }
889
- r = requests.get(url, timeout=15, params=params)
847
+ r = requests.get(url, params=params, timeout=15)
890
848
  data_json = r.json()
891
849
  if not data_json["data"]["diff"]:
892
850
  return pd.DataFrame()
893
- temp_df = pd.DataFrame(data_json["data"]["diff"])
851
+ temp_df = pd.DataFrame(data_json["data"]["diff"]).T
894
852
  temp_df.columns = [
895
853
  "_",
896
854
  "最新价",
@@ -990,9 +948,9 @@ def code_id_map_em() -> dict:
990
948
  url = "https://80.push2.eastmoney.com/api/qt/clist/get"
991
949
  params = {
992
950
  "pn": "1",
993
- "pz": "200",
951
+ "pz": "50000",
994
952
  "po": "1",
995
- "np": "1",
953
+ "np": "2",
996
954
  "ut": "bd1d9ddb04089700cf9c27f6f7426281",
997
955
  "fltt": "2",
998
956
  "invt": "2",
@@ -1001,31 +959,19 @@ def code_id_map_em() -> dict:
1001
959
  "fields": "f12",
1002
960
  "_": "1623833739532",
1003
961
  }
1004
- r = requests.get(url, timeout=15, params=params)
962
+ r = requests.get(url, params=params, timeout=15)
1005
963
  data_json = r.json()
1006
- total_page = math.ceil(data_json["data"]["total"] / 200)
1007
- temp_list = []
1008
- tqdm = get_tqdm()
1009
- for page in tqdm(range(1, total_page + 1), leave=False):
1010
- params.update(
1011
- {
1012
- "pn": page,
1013
- }
1014
- )
1015
- r = requests.get(url, params=params, timeout=15)
1016
- data_json = r.json()
1017
- inner_temp_df = pd.DataFrame(data_json["data"]["diff"])
1018
- temp_list.append(inner_temp_df)
1019
- temp_df = pd.concat(temp_list, ignore_index=True)
964
+ if not data_json["data"]["diff"]:
965
+ return dict()
966
+ temp_df = pd.DataFrame(data_json["data"]["diff"]).T
1020
967
  temp_df["market_id"] = 1
1021
968
  temp_df.columns = ["sh_code", "sh_id"]
1022
969
  code_id_dict = dict(zip(temp_df["sh_code"], temp_df["sh_id"]))
1023
-
1024
970
  params = {
1025
971
  "pn": "1",
1026
- "pz": "200",
972
+ "pz": "50000",
1027
973
  "po": "1",
1028
- "np": "1",
974
+ "np": "2",
1029
975
  "ut": "bd1d9ddb04089700cf9c27f6f7426281",
1030
976
  "fltt": "2",
1031
977
  "invt": "2",
@@ -1034,30 +980,18 @@ def code_id_map_em() -> dict:
1034
980
  "fields": "f12",
1035
981
  "_": "1623833739532",
1036
982
  }
1037
- r = requests.get(url, timeout=15, params=params)
983
+ r = requests.get(url, params=params, timeout=15)
1038
984
  data_json = r.json()
1039
- total_page = math.ceil(data_json["data"]["total"] / 200)
1040
- temp_list = []
1041
- tqdm = get_tqdm()
1042
- for page in tqdm(range(1, total_page + 1), leave=False):
1043
- params.update(
1044
- {
1045
- "pn": page,
1046
- }
1047
- )
1048
- r = requests.get(url, params=params, timeout=15)
1049
- data_json = r.json()
1050
- inner_temp_df = pd.DataFrame(data_json["data"]["diff"])
1051
- temp_list.append(inner_temp_df)
1052
- temp_df_sz = pd.concat(temp_list, ignore_index=True)
985
+ if not data_json["data"]["diff"]:
986
+ return dict()
987
+ temp_df_sz = pd.DataFrame(data_json["data"]["diff"]).T
1053
988
  temp_df_sz["sz_id"] = 0
1054
989
  code_id_dict.update(dict(zip(temp_df_sz["f12"], temp_df_sz["sz_id"])))
1055
-
1056
990
  params = {
1057
991
  "pn": "1",
1058
- "pz": "200",
992
+ "pz": "50000",
1059
993
  "po": "1",
1060
- "np": "1",
994
+ "np": "2",
1061
995
  "ut": "bd1d9ddb04089700cf9c27f6f7426281",
1062
996
  "fltt": "2",
1063
997
  "invt": "2",
@@ -1066,22 +1000,11 @@ def code_id_map_em() -> dict:
1066
1000
  "fields": "f12",
1067
1001
  "_": "1623833739532",
1068
1002
  }
1069
- r = requests.get(url, timeout=15, params=params)
1003
+ r = requests.get(url, params=params, timeout=15)
1070
1004
  data_json = r.json()
1071
- total_page = math.ceil(data_json["data"]["total"] / 200)
1072
- temp_list = []
1073
- tqdm = get_tqdm()
1074
- for page in tqdm(range(1, total_page + 1), leave=False):
1075
- params.update(
1076
- {
1077
- "pn": page,
1078
- }
1079
- )
1080
- r = requests.get(url, params=params, timeout=15)
1081
- data_json = r.json()
1082
- inner_temp_df = pd.DataFrame(data_json["data"]["diff"])
1083
- temp_list.append(inner_temp_df)
1084
- temp_df_sz = pd.concat(temp_list, ignore_index=True)
1005
+ if not data_json["data"]["diff"]:
1006
+ return dict()
1007
+ temp_df_sz = pd.DataFrame(data_json["data"]["diff"]).T
1085
1008
  temp_df_sz["bj_id"] = 0
1086
1009
  code_id_dict.update(dict(zip(temp_df_sz["f12"], temp_df_sz["bj_id"])))
1087
1010
  return code_id_dict
@@ -1375,9 +1298,9 @@ def stock_hk_spot_em() -> pd.DataFrame:
1375
1298
  url = "https://72.push2.eastmoney.com/api/qt/clist/get"
1376
1299
  params = {
1377
1300
  "pn": "1",
1378
- "pz": "200",
1301
+ "pz": "50000",
1379
1302
  "po": "1",
1380
- "np": "1",
1303
+ "np": "2",
1381
1304
  "ut": "bd1d9ddb04089700cf9c27f6f7426281",
1382
1305
  "fltt": "2",
1383
1306
  "invt": "2",
@@ -1389,20 +1312,9 @@ def stock_hk_spot_em() -> pd.DataFrame:
1389
1312
  }
1390
1313
  r = requests.get(url, timeout=15, params=params)
1391
1314
  data_json = r.json()
1392
- total_page = math.ceil(data_json["data"]["total"] / 200)
1393
- temp_list = []
1394
- tqdm = get_tqdm()
1395
- for page in tqdm(range(1, total_page + 1), leave=False):
1396
- params.update(
1397
- {
1398
- "pn": page,
1399
- }
1400
- )
1401
- r = requests.get(url, params=params, timeout=15)
1402
- data_json = r.json()
1403
- inner_temp_df = pd.DataFrame(data_json["data"]["diff"])
1404
- temp_list.append(inner_temp_df)
1405
- temp_df = pd.concat(temp_list, ignore_index=True)
1315
+ if not data_json["data"]["diff"]:
1316
+ return pd.DataFrame()
1317
+ temp_df = pd.DataFrame(data_json["data"]["diff"]).T
1406
1318
  temp_df.columns = [
1407
1319
  "_",
1408
1320
  "最新价",
@@ -1480,7 +1392,7 @@ def stock_hk_main_board_spot_em() -> pd.DataFrame:
1480
1392
  "pn": "1",
1481
1393
  "pz": "50000",
1482
1394
  "po": "1",
1483
- "np": "1",
1395
+ "np": "2",
1484
1396
  "ut": "bd1d9ddb04089700cf9c27f6f7426281",
1485
1397
  "fltt": "2",
1486
1398
  "invt": "2",
@@ -1490,9 +1402,9 @@ def stock_hk_main_board_spot_em() -> pd.DataFrame:
1490
1402
  "f21,f23,f24,f25,f22,f11,f62,f128,f136,f115,f152",
1491
1403
  "_": "1624010056945",
1492
1404
  }
1493
- r = requests.get(url, timeout=15, params=params)
1405
+ r = requests.get(url, params=params, timeout=15)
1494
1406
  data_json = r.json()
1495
- temp_df = pd.DataFrame(data_json["data"]["diff"])
1407
+ temp_df = pd.DataFrame(data_json["data"]["diff"]).T
1496
1408
  temp_df.columns = [
1497
1409
  "_",
1498
1410
  "最新价",
@@ -1771,9 +1683,9 @@ def stock_us_spot_em() -> pd.DataFrame:
1771
1683
  url = "https://72.push2.eastmoney.com/api/qt/clist/get"
1772
1684
  params = {
1773
1685
  "pn": "1",
1774
- "pz": "200",
1686
+ "pz": "50000",
1775
1687
  "po": "1",
1776
- "np": "1",
1688
+ "np": "2",
1777
1689
  "ut": "bd1d9ddb04089700cf9c27f6f7426281",
1778
1690
  "fltt": "2",
1779
1691
  "invt": "2",
@@ -1783,22 +1695,11 @@ def stock_us_spot_em() -> pd.DataFrame:
1783
1695
  "f21,f23,f24,f25,f26,f22,f33,f11,f62,f128,f136,f115,f152",
1784
1696
  "_": "1624010056945",
1785
1697
  }
1786
- r = requests.get(url, timeout=15, params=params)
1698
+ r = requests.get(url, params=params, timeout=15)
1787
1699
  data_json = r.json()
1788
- total_page = math.ceil(data_json["data"]["total"] / 200)
1789
- temp_list = []
1790
- tqdm = get_tqdm()
1791
- for page in tqdm(range(1, total_page + 1), leave=False):
1792
- params.update(
1793
- {
1794
- "pn": page,
1795
- }
1796
- )
1797
- r = requests.get(url, params=params, timeout=15)
1798
- data_json = r.json()
1799
- inner_temp_df = pd.DataFrame(data_json["data"]["diff"])
1800
- temp_list.append(inner_temp_df)
1801
- temp_df = pd.concat(temp_list, ignore_index=True)
1700
+ if not data_json["data"]["diff"]:
1701
+ return pd.DataFrame()
1702
+ temp_df = pd.DataFrame(data_json["data"]["diff"]).T
1802
1703
  temp_df.columns = [
1803
1704
  "_",
1804
1705
  "最新价",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: akshare
3
- Version: 1.15.97
3
+ Version: 1.15.99
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=-fpSUTt2coTEzLEVK_Dxhaoma0ptMyZRcLGC9RVNK0M,187423
1
+ akshare/__init__.py,sha256=A7PXQwrV1Zg07nFz4vVEUuJvqmhjqpAhFcxHJwyH3Y4,187523
2
2
  akshare/datasets.py,sha256=rKuRNZrqi6IMsZ9nyvO3Rx02js0tH3zMLjz8HQNAoPQ,963
3
3
  akshare/exceptions.py,sha256=WEJjIhSmJ_xXNW6grwV4nufE_cfmmyuhmueVGiN1VAg,878
4
4
  akshare/request.py,sha256=HtFFf9MhfEibR-ETWe-1Tts6ELU4VKSqA-ghaXjegQM,4252
@@ -173,7 +173,7 @@ akshare/index/index_sugar.py,sha256=B_Nj9Q6JP-Y_d7myZ0C79izTxxrbuZIp1Vv_CilVMOc,
173
173
  akshare/index/index_sw.py,sha256=hETMmFszQb7JDY8UHjLK8szfwkr7Ui_6QcseOoEfxaI,10456
174
174
  akshare/index/index_yw.py,sha256=6FF38kooLQulnMTqAd1__TNWip4XC1VA72k3T049xYc,4319
175
175
  akshare/index/index_zh_a_scope.py,sha256=4Ej2Gnqtd66EBiI67sQZKhblcIJXdD5CoMIJYD_KwYU,1367
176
- akshare/index/index_zh_em.py,sha256=o_GbQ6cfr7DSyyjnFnJYv_rlDVTQePq9kvoG3fAShUU,17617
176
+ akshare/index/index_zh_em.py,sha256=GVInuhgb1MpANo7rz96c1Cj_MHOY7Z7lYjgP1VaZtrg,17616
177
177
  akshare/interest_rate/__init__.py,sha256=O6dl1roEQUWwtXgRpa6wOABUU7MH0YmFDrkfhBpYOX4,81
178
178
  akshare/interest_rate/interbank_rate_em.py,sha256=iKvmWxM4bpl9JgHNvavq0yhzMRq69BPEON1cGcWJrf4,4549
179
179
  akshare/movie/__init__.py,sha256=YzijIIzvGpcc9hORC6qJSEK6vkjH5c4Docb5tQq2iHs,82
@@ -195,7 +195,7 @@ akshare/option/option_commodity_sina.py,sha256=r6qK_K7w3A6Uqp5ZtBb4pW7vH04oMyeCE
195
195
  akshare/option/option_czce.py,sha256=L4i7TVKcOns5ZKoqq-mrSykdx3SGwu6OL4eI77-A_lc,1812
196
196
  akshare/option/option_daily_stats_sse_szse.py,sha256=Ip_vE81qbEGt4ocbtWfUT7XGu0HWU0zKkzauZeq9RJA,4962
197
197
  akshare/option/option_em.py,sha256=Q7t1z5GI4SQ9x9lpS7NClMikT4GP_a9vWcoEc9UIFiU,5949
198
- akshare/option/option_finance.py,sha256=K91iFIEUVQOWVrJOjMazixkTAxR4_kgHEPeDkK0GOBU,12064
198
+ akshare/option/option_finance.py,sha256=7rnEeHo-7Sddrs36Q4c99CXL_9m8IJzw9S1Aqh3Bw90,12568
199
199
  akshare/option/option_finance_sina.py,sha256=-bFes2XzYE84eMOQZIm_fVCMS17ltBL45J0HAnf5hCg,37848
200
200
  akshare/option/option_lhb_em.py,sha256=VHrV2BWAPE7tj8q7J5Crjm-sey8QarYd1lgxKbkX2CQ,9090
201
201
  akshare/option/option_premium_analysis_em.py,sha256=uL-wxwsZu3UbeUmHs5W1x3PBfk0HfVyGubx6FvkeyPg,2471
@@ -231,14 +231,14 @@ akshare/stock/__init__.py,sha256=jSa9260d6aNZajaW68chI2mpPkDSXLOgi3eXrqo4MQ8,82
231
231
  akshare/stock/cons.py,sha256=0oyUW5Pu-iQ3qgh-TFemM_O5f1fAwVe-PsI4Qa8EYpQ,42956
232
232
  akshare/stock/stock_allotment_cninfo.py,sha256=OVjVdWp2XVRNbJvVgtgVVoBmPBJgBB4RyIIgA_9QHM8,6066
233
233
  akshare/stock/stock_ask_bid_em.py,sha256=nXQhYIpU4k7GUc7nthWC29zVS9GhYb9ppQTLD0gycF4,3438
234
- akshare/stock/stock_board_concept_em.py,sha256=zCtHicBUcFN3GN2b5sKd0JV74KVSZKOOHDxS7v9DeCM,14042
234
+ akshare/stock/stock_board_concept_em.py,sha256=8_XxPk1GrkEpfBdvXNYiFZWd4i328eAasCKJMyZ3KlQ,15024
235
235
  akshare/stock/stock_board_industry_em.py,sha256=AfRVUVZrgSJXaoKAK81Ga-_m3hfv8YZzczBnnBdFq-I,16195
236
236
  akshare/stock/stock_cg_equity_mortgage.py,sha256=Pui5aWKKPwGuKjF_GNpejDzsMGNPrxiaJviLz3x2e9I,3426
237
237
  akshare/stock/stock_cg_guarantee.py,sha256=ts7qcQhhyN1PHB7Q4XlMn38HhfVvubOvky9RZfmUP94,3844
238
238
  akshare/stock/stock_cg_lawsuit.py,sha256=6Y92pPw0JgyrInteqHuU07G1jwmdX2wjaDtrJN8y6Hg,4129
239
239
  akshare/stock/stock_dividend_cninfo.py,sha256=_vipLQu94qBDoPkaIWZKRFA0mFfgroUMnn5EdLcjAc4,3195
240
240
  akshare/stock/stock_dzjy_em.py,sha256=QMo2w-_I9UnmCr1IXk_InFeW5ok_GpRE9HdWFDUdGyM,22556
241
- akshare/stock/stock_fund_em.py,sha256=zo21Thdwp1IonjZLHKdr5X2g1I1kzSEz_wORNEqp2F8,49800
241
+ akshare/stock/stock_fund_em.py,sha256=iUOr6uxk1urNqj14gPo8aXQHndDQxL5xexACX7WXQL4,49807
242
242
  akshare/stock/stock_fund_hold.py,sha256=iFEmRFber7MF6aPi0QOJxpvYjO7I26KouUvC-xTQdCk,6056
243
243
  akshare/stock/stock_gsrl_em.py,sha256=oy5vO681ZPTEehZgz10T8jgIQ8dNm_E7MXGr1PGoHqI,1951
244
244
  akshare/stock/stock_hk_famous.py,sha256=g-p1cdRibei9fw2HEMPyarLP-wT4bFwIK7Mxi77jH9E,3015
@@ -301,7 +301,7 @@ akshare/stock_feature/stock_cyq_em.py,sha256=ijHL6BWGDLI8dctYQ4pYWDK2UHOSfn5mRu0
301
301
  akshare/stock_feature/stock_disclosure_cninfo.py,sha256=1Eje6abqk6HNOlpCueGnaR_r1-aqTv2f51h4QAHCQzo,10661
302
302
  akshare/stock_feature/stock_dxsyl_em.py,sha256=9d5tfHCB9Ls1FQdyOCElZt8YF5ltKwPa4AvnXL8u48o,18789
303
303
  akshare/stock_feature/stock_ebs_lg.py,sha256=rnFbOHnZPZUJ3K7-QdTZXqbIFazL1wSkTvn4Mpwn7bI,1750
304
- akshare/stock_feature/stock_esg_sina.py,sha256=RJmeYi2YDns3Do-vydtKgJEQsLVgmmV1GVZtTXlxKqk,11029
304
+ akshare/stock_feature/stock_esg_sina.py,sha256=NKHbyYtuSgYubko1jDWgW0qQFTTcEVEtKA0kasHsahc,11544
305
305
  akshare/stock_feature/stock_fhps_em.py,sha256=85gfdMP3OtA3wsEGlB2RkdHiOEZjFff1ls5x1oWSQPQ,9469
306
306
  akshare/stock_feature/stock_fhps_ths.py,sha256=NosH1xyT1Pif4T9tchdtJTBEpe6g1Wq2kjvxJDsZD_Y,1805
307
307
  akshare/stock_feature/stock_fund_flow.py,sha256=cqBqsFrzwmuLP3k3wYQzvW085QUUfHZ4nBW8Zx7egkQ,18669
@@ -311,7 +311,7 @@ akshare/stock_feature/stock_gdhs.py,sha256=Z6ZMy1A03BqMu9TghcIu2Sd_wwEtpIH7qawHu
311
311
  akshare/stock_feature/stock_gdzjc_em.py,sha256=SHJH5iS3_NhvjTqRXF0vPooZl0s_ASeyZmNCC50ZYqs,4426
312
312
  akshare/stock_feature/stock_gpzy_em.py,sha256=FgyjVgdoxrtMM7WwxdQJxK0mYGJklIHaT9KmMCFmEPM,17869
313
313
  akshare/stock_feature/stock_gxl_lg.py,sha256=I8TpDEpFzadZSSyZisyIk6163mJlRxup91dmlBH4t4U,2641
314
- akshare/stock_feature/stock_hist_em.py,sha256=gFB9EUehXrCKvHd-QHyBLYesPEXq1YpJosoDYOPwUno,72528
314
+ akshare/stock_feature/stock_hist_em.py,sha256=vluzByaRnfUIczZqOxpythZLjnosn8VsNpSgqZ7hdHo,69295
315
315
  akshare/stock_feature/stock_hist_tx.py,sha256=WpLsbkG2didSx7lYNkSbTWNTrLhUKbcopfD18WO2Rlc,3397
316
316
  akshare/stock_feature/stock_hk_valuation_baidu.py,sha256=_sErx4UhNsSXJgXyPfrL0aPxkW53Mg1zH9gEKoziaCA,1968
317
317
  akshare/stock_feature/stock_hot_xq.py,sha256=NmoH4x-0hiDztj-YwzMFVIyOICQ2wUUBbhjt91q-tq4,9112
@@ -380,8 +380,8 @@ akshare/utils/token_process.py,sha256=K4rGXjh_tgugbRcyOK2h2x0jP3PT65IIK7nxhUKhOe
380
380
  akshare/utils/tqdm.py,sha256=MuPNwcswkOGjwWQOMWXi9ZvQ_RmW4obCWRj2i7HM7FE,847
381
381
  tests/__init__.py,sha256=gNzhlO0UPjFq6Ieb38kaVIODXv4cTDByrdohAZnDYt4,82
382
382
  tests/test_func.py,sha256=j1MGYbZI2if2j_LY1S4FLsf4qfq4NwVqD5wmRlv5Log,832
383
- akshare-1.15.97.dist-info/LICENSE,sha256=mmSZCPgfHiVw34LXuFArd-SUgQtBJ_QsIlh-kWlDHfs,1073
384
- akshare-1.15.97.dist-info/METADATA,sha256=oc2rkfI8yv9Rw9tnO2Flx5nmYdEPDAO9PxHaHVUbIn0,13679
385
- akshare-1.15.97.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
386
- akshare-1.15.97.dist-info/top_level.txt,sha256=jsf9ZzZPmHaISTVumQPsAw7vv7Yv-PdEVW70SMEelQQ,14
387
- akshare-1.15.97.dist-info/RECORD,,
383
+ akshare-1.15.99.dist-info/LICENSE,sha256=mmSZCPgfHiVw34LXuFArd-SUgQtBJ_QsIlh-kWlDHfs,1073
384
+ akshare-1.15.99.dist-info/METADATA,sha256=lAYoXAL-syR6Mg73zy_xiTUCSkvxnFIxOxyK-lUTQNA,13679
385
+ akshare-1.15.99.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
386
+ akshare-1.15.99.dist-info/top_level.txt,sha256=jsf9ZzZPmHaISTVumQPsAw7vv7Yv-PdEVW70SMEelQQ,14
387
+ akshare-1.15.99.dist-info/RECORD,,