akshare 1.17.16__py3-none-any.whl → 1.17.17__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
@@ -3123,9 +3123,10 @@ amac_manager_cancelled_info # 中国证券投资基金业协会-信息公示-诚
3123
3123
  1.17.14 fix: fix forex_spot_em interface
3124
3124
  1.17.15 fix: fix stock_comment_em interface
3125
3125
  1.17.16 fix: fix bond_zh_cov interface
3126
+ 1.17.17 fix: fix stock_hk_spot interface
3126
3127
  """
3127
3128
 
3128
- __version__ = "1.17.16"
3129
+ __version__ = "1.17.17"
3129
3130
  __author__ = "AKFamily"
3130
3131
 
3131
3132
  import sys
@@ -237,6 +237,10 @@ def futures_global_hist_em(symbol: str = "HG00Y") -> pd.DataFrame:
237
237
  temp_df["总量"] = pd.to_numeric(temp_df["总量"], errors="coerce")
238
238
  temp_df["涨幅"] = pd.to_numeric(temp_df["涨幅"], errors="coerce")
239
239
  temp_df["日增"] = pd.to_numeric(temp_df["日增"], errors="coerce")
240
+ # 日增修复为有符号32位整数值
241
+ unsigned_max, signed_max = (2 ** 32) - 1, (2 ** 31) - 1
242
+ mask = temp_df["日增"] > signed_max
243
+ temp_df.loc[mask, "日增"] = temp_df.loc[mask, "日增"] - (unsigned_max + 1)
240
244
  return temp_df
241
245
 
242
246
 
@@ -7,18 +7,15 @@ https://stock.finance.sina.com.cn/hkstock/quotes/00700.html
7
7
  """
8
8
 
9
9
  import pandas as pd
10
- import requests
11
10
  import py_mini_racer
11
+ import requests
12
12
 
13
13
  from akshare.stock.cons import (
14
14
  hk_js_decode,
15
- hk_sina_stock_dict_payload,
16
- hk_sina_stock_list_url,
17
15
  hk_sina_stock_hist_url,
18
16
  hk_sina_stock_hist_hfq_url,
19
17
  hk_sina_stock_hist_qfq_url,
20
18
  )
21
- from akshare.utils import demjson
22
19
 
23
20
 
24
21
  def stock_hk_spot() -> pd.DataFrame:
@@ -28,42 +25,91 @@ def stock_hk_spot() -> pd.DataFrame:
28
25
  :return: 实时行情数据
29
26
  :rtype: pandas.DataFrame
30
27
  """
31
- res = requests.get(hk_sina_stock_list_url, params=hk_sina_stock_dict_payload)
32
- data_json = [
33
- demjson.decode(tt)
34
- for tt in [
35
- item + "}" for item in res.text[1:-1].split("},") if not item.endswith("}")
36
- ]
37
- ]
38
- data_df = pd.DataFrame(data_json)
39
- data_df = data_df[
40
- [
41
- "symbol",
42
- "name",
43
- "engname",
44
- "tradetype",
45
- "lasttrade",
46
- "prevclose",
47
- "open",
48
- "high",
49
- "low",
50
- "volume",
51
- "amount",
52
- "ticktime",
53
- "buy",
54
- "sell",
55
- "pricechange",
56
- "changepercent",
57
- ]
28
+ url = "https://vip.stock.finance.sina.com.cn/quotes_service/api/json_v2.php/Market_Center.getHKStockData"
29
+ params = {
30
+ "page": "1",
31
+ "num": "60",
32
+ "sort": "symbol",
33
+ "asc": "1",
34
+ "node": "qbgg_hk",
35
+ "_s_r_a": "init",
36
+ }
37
+ big_df = pd.DataFrame()
38
+ from akshare.utils.tqdm import get_tqdm
39
+ tqdm = get_tqdm()
40
+ for page in tqdm(range(1, 100), leave=False):
41
+ params["page"] = str(page)
42
+ r = requests.get(url, params=params)
43
+ data_json = r.json()
44
+ if not data_json:
45
+ break
46
+ temp_df = pd.DataFrame(data_json)
47
+ big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
48
+
49
+
50
+ big_df.columns = [
51
+ "代码",
52
+ "中文名称",
53
+ "英文名称",
54
+ "交易类型",
55
+ "最新价",
56
+ "昨收",
57
+ "今开",
58
+ "最高",
59
+ "最低",
60
+ "成交量",
61
+ "-",
62
+ "成交额",
63
+ "日期时间",
64
+ "买一",
65
+ "卖一",
66
+ "-",
67
+ "-",
68
+ "-",
69
+ "-",
70
+ "-",
71
+ "涨跌额",
72
+ "涨跌幅",
73
+ "-",
74
+ "-",
58
75
  ]
59
- return data_df
76
+ big_df = big_df[[
77
+ "日期时间",
78
+ "代码",
79
+ "中文名称",
80
+ "英文名称",
81
+ "交易类型",
82
+ "最新价",
83
+ "涨跌额",
84
+ "涨跌幅",
85
+ "昨收",
86
+ "今开",
87
+ "最高",
88
+ "最低",
89
+ "成交量",
90
+ "成交额",
91
+ "买一",
92
+ "卖一",
93
+ ]]
94
+ big_df["最新价"] = pd.to_numeric(big_df["最新价"], errors="coerce")
95
+ big_df["涨跌额"] = pd.to_numeric(big_df["涨跌额"], errors="coerce")
96
+ big_df["涨跌幅"] = pd.to_numeric(big_df["涨跌幅"], errors="coerce")
97
+ big_df["昨收"] = pd.to_numeric(big_df["昨收"], errors="coerce")
98
+ big_df["今开"] = pd.to_numeric(big_df["今开"], errors="coerce")
99
+ big_df["最高"] = pd.to_numeric(big_df["最高"], errors="coerce")
100
+ big_df["最低"] = pd.to_numeric(big_df["最低"], errors="coerce")
101
+ big_df["成交量"] = pd.to_numeric(big_df["成交量"], errors="coerce")
102
+ big_df["成交额"] = pd.to_numeric(big_df["成交额"], errors="coerce")
103
+ big_df["买一"] = pd.to_numeric(big_df["买一"], errors="coerce")
104
+ big_df["卖一"] = pd.to_numeric(big_df["卖一"], errors="coerce")
105
+ return big_df
60
106
 
61
107
 
62
108
  def stock_hk_daily(symbol: str = "00981", adjust: str = "") -> pd.DataFrame:
63
109
  """
64
110
  新浪财经-港股-个股的历史行情数据
65
111
  https://stock.finance.sina.com.cn/hkstock/quotes/02912.html
66
- :param symbol: 可以使用 stock_hk_spot 获取
112
+ :param symbol: 可以使用 ak.stock_hk_spot() 获取
67
113
  :type symbol: str
68
114
  :param adjust: "": 返回未复权的数据 ; qfq: 返回前复权后的数据; qfq-factor: 返回前复权因子和调整;
69
115
  :type adjust: str
@@ -234,6 +280,8 @@ def stock_hk_daily(symbol: str = "00981", adjust: str = "") -> pd.DataFrame:
234
280
  qfq_factor_df.reset_index(inplace=True)
235
281
  qfq_factor_df["date"] = pd.to_datetime(qfq_factor_df["date"]).dt.date
236
282
  return qfq_factor_df
283
+ else:
284
+ return pd.DataFrame()
237
285
 
238
286
 
239
287
  if __name__ == "__main__":
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: akshare
3
- Version: 1.17.16
3
+ Version: 1.17.17
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=V-thIqpk-zg-VY-iHewSGFF128lWKK1jDMe1FO3SsL0,195098
1
+ akshare/__init__.py,sha256=mFf1ewyE4w8JgrUaDbWD5Zy5VIDJFwHMYZpBnEYgQnk,195139
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
@@ -116,7 +116,7 @@ akshare/futures/futures_comm_qihuo.py,sha256=uQfabZ63qME8sTaxUbIUVQBVi8yTaPPDhD7
116
116
  akshare/futures/futures_contract_detail.py,sha256=Glm1x72WBwF4G-f_ZYzHsbNhlQ6Ti1HeF0Rzhx-pfFg,1190
117
117
  akshare/futures/futures_daily_bar.py,sha256=_T5sX-DJ_msfhYa7y49KP9y2gitPFnVmVl7Wrvr61TQ,25317
118
118
  akshare/futures/futures_foreign.py,sha256=2cbMA-eug_jriDFwKZWmA_TbPW2GQAjscpZHBrs287E,2131
119
- akshare/futures/futures_hf_em.py,sha256=eCksGjWRRWXUT61ulzc2UifjTQzC8BNOKqKq7JB20oU,7965
119
+ akshare/futures/futures_hf_em.py,sha256=juiJauO7T6YTHXIS--ZDW-Idk73KMOrXgRBi1xEiBqA,8195
120
120
  akshare/futures/futures_hist_em.py,sha256=Q8I20qRjp2ujiJMCCNBvTHXmrIth22p2k6KpvbkC3dk,6472
121
121
  akshare/futures/futures_hq_sina.py,sha256=HZBAve1yxp1fnwgEy_2CqVoniTXRkt8KI3REt0N0TiY,9575
122
122
  akshare/futures/futures_index_ccidx.py,sha256=_kgWioCOpFNn8WUcL5qKHGb3rUHzrbrx2AszprKpBh4,4460
@@ -249,7 +249,7 @@ akshare/stock/stock_gsrl_em.py,sha256=LF88NFHrW4tjUwT3CloZxomnfuI49h7uCmR_Rpgdy_
249
249
  akshare/stock/stock_hk_famous.py,sha256=Kij-j0RF2EwrBONY-VXgrzHz8YHdjZe07ToYo0DpjFE,2988
250
250
  akshare/stock/stock_hk_fhpx_ths.py,sha256=aMKVjhg7nEeXKbVPsq7BkdTe2hpo1JhRHuWxPuLlVoQ,2192
251
251
  akshare/stock/stock_hk_hot_rank_em.py,sha256=OXdm03AW_4M7VuWciauq_tl0FOkb1Yli4Fbnuz4kp4U,4747
252
- akshare/stock/stock_hk_sina.py,sha256=7tD7P4lo6U40s-jkS9E128voZgYx75vbxmG3M0LyqNg,9589
252
+ akshare/stock/stock_hk_sina.py,sha256=qvFljrbxq9NEMeEUxbF6WY-lCsvflVTypTIjOISXzWU,11160
253
253
  akshare/stock/stock_hold_control_cninfo.py,sha256=J1CGX1tZ22UJdOWAkED19o7vdE10Hke91cEbiN1RIYQ,10038
254
254
  akshare/stock/stock_hold_control_em.py,sha256=pPd_nXUqSN8FHxFbG1JAl5iiRpYyOqVoeqYgBgjpHtQ,7289
255
255
  akshare/stock/stock_hold_num_cninfo.py,sha256=JY9LcZMhhTiCHfQJv4pwMrLrpUxTKGLE4oRD6pvflsU,3706
@@ -392,10 +392,10 @@ akshare/utils/func.py,sha256=4cwmXFztU86yJNONJ40KJLvsIEQHBbct4iMm3zT2v30,2315
392
392
  akshare/utils/multi_decrypt.py,sha256=aWoL2iEPeuXHJg8-n7OtMKixLnIhfzepACgxfrfmQB4,1657
393
393
  akshare/utils/token_process.py,sha256=nGtgnZGRprXJkhLXH8mcUH4TgIFwzsTOb0EaEPa0Euo,667
394
394
  akshare/utils/tqdm.py,sha256=MuPNwcswkOGjwWQOMWXi9ZvQ_RmW4obCWRj2i7HM7FE,847
395
- akshare-1.17.16.dist-info/licenses/LICENSE,sha256=mmSZCPgfHiVw34LXuFArd-SUgQtBJ_QsIlh-kWlDHfs,1073
395
+ akshare-1.17.17.dist-info/licenses/LICENSE,sha256=mmSZCPgfHiVw34LXuFArd-SUgQtBJ_QsIlh-kWlDHfs,1073
396
396
  tests/__init__.py,sha256=gNzhlO0UPjFq6Ieb38kaVIODXv4cTDByrdohAZnDYt4,82
397
397
  tests/test_func.py,sha256=j1MGYbZI2if2j_LY1S4FLsf4qfq4NwVqD5wmRlv5Log,832
398
- akshare-1.17.16.dist-info/METADATA,sha256=XgmORd-i4HvPpL3E3yxi3PNZ7ZKgjZfsMRTHnzdeFck,11902
399
- akshare-1.17.16.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
400
- akshare-1.17.16.dist-info/top_level.txt,sha256=jsf9ZzZPmHaISTVumQPsAw7vv7Yv-PdEVW70SMEelQQ,14
401
- akshare-1.17.16.dist-info/RECORD,,
398
+ akshare-1.17.17.dist-info/METADATA,sha256=gcxxCkXok3AMjAwci916eshTjgKsa_5Gdcv0REPRxXI,11902
399
+ akshare-1.17.17.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
400
+ akshare-1.17.17.dist-info/top_level.txt,sha256=jsf9ZzZPmHaISTVumQPsAw7vv7Yv-PdEVW70SMEelQQ,14
401
+ akshare-1.17.17.dist-info/RECORD,,