akshare 1.17.15__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 +3 -1
- akshare/bond/bond_zh_cov.py +15 -14
- akshare/futures/futures_hf_em.py +4 -0
- akshare/stock/stock_hk_sina.py +81 -33
- {akshare-1.17.15.dist-info → akshare-1.17.17.dist-info}/METADATA +1 -1
- {akshare-1.17.15.dist-info → akshare-1.17.17.dist-info}/RECORD +9 -9
- {akshare-1.17.15.dist-info → akshare-1.17.17.dist-info}/WHEEL +0 -0
- {akshare-1.17.15.dist-info → akshare-1.17.17.dist-info}/licenses/LICENSE +0 -0
- {akshare-1.17.15.dist-info → akshare-1.17.17.dist-info}/top_level.txt +0 -0
akshare/__init__.py
CHANGED
|
@@ -3122,9 +3122,11 @@ amac_manager_cancelled_info # 中国证券投资基金业协会-信息公示-诚
|
|
|
3122
3122
|
1.17.13 fix: fix futures_shfe_warehouse_receipt interface
|
|
3123
3123
|
1.17.14 fix: fix forex_spot_em interface
|
|
3124
3124
|
1.17.15 fix: fix stock_comment_em interface
|
|
3125
|
+
1.17.16 fix: fix bond_zh_cov interface
|
|
3126
|
+
1.17.17 fix: fix stock_hk_spot interface
|
|
3125
3127
|
"""
|
|
3126
3128
|
|
|
3127
|
-
__version__ = "1.17.
|
|
3129
|
+
__version__ = "1.17.17"
|
|
3128
3130
|
__author__ = "AKFamily"
|
|
3129
3131
|
|
|
3130
3132
|
import sys
|
akshare/bond/bond_zh_cov.py
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env python
|
|
2
2
|
# -*- coding:utf-8 -*-
|
|
3
3
|
"""
|
|
4
|
-
Date: 2025/
|
|
4
|
+
Date: 2025/7/4 15:00
|
|
5
5
|
Desc: 新浪财经-债券-沪深可转债-实时行情数据和历史行情数据
|
|
6
6
|
https://vip.stock.finance.sina.com.cn/mkt/#hskzz_z
|
|
7
7
|
"""
|
|
@@ -10,8 +10,8 @@ import datetime
|
|
|
10
10
|
import re
|
|
11
11
|
|
|
12
12
|
import pandas as pd
|
|
13
|
-
import requests
|
|
14
13
|
import py_mini_racer
|
|
14
|
+
import requests
|
|
15
15
|
|
|
16
16
|
from akshare.bond.cons import (
|
|
17
17
|
zh_sina_bond_hs_cov_count_url,
|
|
@@ -21,8 +21,8 @@ from akshare.bond.cons import (
|
|
|
21
21
|
)
|
|
22
22
|
from akshare.stock.cons import hk_js_decode
|
|
23
23
|
from akshare.utils import demjson
|
|
24
|
-
from akshare.utils.tqdm import get_tqdm
|
|
25
24
|
from akshare.utils.func import fetch_paginated_data
|
|
25
|
+
from akshare.utils.tqdm import get_tqdm
|
|
26
26
|
|
|
27
27
|
|
|
28
28
|
def _get_zh_bond_hs_cov_page_count() -> int:
|
|
@@ -322,10 +322,10 @@ def bond_zh_cov() -> pd.DataFrame:
|
|
|
322
322
|
"reportName": "RPT_BOND_CB_LIST",
|
|
323
323
|
"columns": "ALL",
|
|
324
324
|
"quoteColumns": "f2~01~CONVERT_STOCK_CODE~CONVERT_STOCK_PRICE,"
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
325
|
+
"f235~10~SECURITY_CODE~TRANSFER_PRICE,f236~10~SECURITY_CODE~TRANSFER_VALUE,"
|
|
326
|
+
"f2~10~SECURITY_CODE~CURRENT_BOND_PRICE,f237~10~SECURITY_CODE~TRANSFER_PREMIUM_RATIO,"
|
|
327
|
+
"f239~10~SECURITY_CODE~RESALE_TRIG_PRICE,f240~10~SECURITY_CODE~REDEEM_TRIG_PRICE,"
|
|
328
|
+
"f23~01~CONVERT_STOCK_CODE~PBV_RATIO",
|
|
329
329
|
"source": "WEB",
|
|
330
330
|
"client": "WEB",
|
|
331
331
|
}
|
|
@@ -413,6 +413,7 @@ def bond_zh_cov() -> pd.DataFrame:
|
|
|
413
413
|
"_",
|
|
414
414
|
"_",
|
|
415
415
|
"_",
|
|
416
|
+
"_",
|
|
416
417
|
]
|
|
417
418
|
big_df = big_df[
|
|
418
419
|
[
|
|
@@ -480,7 +481,7 @@ def bond_cov_comparison() -> pd.DataFrame:
|
|
|
480
481
|
"fid": "f243",
|
|
481
482
|
"fs": "b:MK0354",
|
|
482
483
|
"fields": "f1,f152,f2,f3,f12,f13,f14,f227,f228,f229,f230,f231,f232,f233,f234,"
|
|
483
|
-
|
|
484
|
+
"f235,f236,f237,f238,f239,f240,f241,f242,f26,f243",
|
|
484
485
|
}
|
|
485
486
|
temp_df = fetch_paginated_data(url, params)
|
|
486
487
|
temp_df.columns = [
|
|
@@ -562,9 +563,9 @@ def bond_zh_cov_info(
|
|
|
562
563
|
"reportName": "RPT_BOND_CB_LIST",
|
|
563
564
|
"columns": "ALL",
|
|
564
565
|
"quoteColumns": "f2~01~CONVERT_STOCK_CODE~CONVERT_STOCK_PRICE,f235~10~SECURITY_CODE~TRANSFER_PRICE,"
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
566
|
+
"f236~10~SECURITY_CODE~TRANSFER_VALUE,f2~10~SECURITY_CODE~CURRENT_BOND_PRICE,"
|
|
567
|
+
"f237~10~SECURITY_CODE~TRANSFER_PREMIUM_RATIO,f239~10~SECURITY_CODE~RESALE_TRIG_PRICE,"
|
|
568
|
+
"f240~10~SECURITY_CODE~REDEEM_TRIG_PRICE,f23~01~CONVERT_STOCK_CODE~PBV_RATIO",
|
|
568
569
|
"quoteType": "0",
|
|
569
570
|
"source": "WEB",
|
|
570
571
|
"client": "WEB",
|
|
@@ -575,9 +576,9 @@ def bond_zh_cov_info(
|
|
|
575
576
|
{
|
|
576
577
|
"reportName": indicator_map[indicator],
|
|
577
578
|
"quoteColumns": "f2~01~CONVERT_STOCK_CODE~CONVERT_STOCK_PRICE,f235~10~SECURITY_CODE~TRANSFER_PRICE,"
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
579
|
+
"f236~10~SECURITY_CODE~TRANSFER_VALUE,f2~10~SECURITY_CODE~CURRENT_BOND_PRICE,"
|
|
580
|
+
"f237~10~SECURITY_CODE~TRANSFER_PREMIUM_RATIO,f239~10~SECURITY_CODE~RESALE_TRIG_PRICE,"
|
|
581
|
+
"f240~10~SECURITY_CODE~REDEEM_TRIG_PRICE,f23~01~CONVERT_STOCK_CODE~PBV_RATIO",
|
|
581
582
|
}
|
|
582
583
|
)
|
|
583
584
|
r = requests.get(url, params=params)
|
akshare/futures/futures_hf_em.py
CHANGED
|
@@ -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
|
|
akshare/stock/stock_hk_sina.py
CHANGED
|
@@ -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
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
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
|
-
|
|
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,4 +1,4 @@
|
|
|
1
|
-
akshare/__init__.py,sha256=
|
|
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
|
|
@@ -31,7 +31,7 @@ akshare/bond/bond_info_cm.py,sha256=VBu9UM9tUcGDRV07pndU9yttLDF_Nk3b0vU0n65qpHs,
|
|
|
31
31
|
akshare/bond/bond_issue_cninfo.py,sha256=tPoZhF-_sIX9ztCKB0K0-Z4Kd9b-389bP3_CdFK7Wb0,21672
|
|
32
32
|
akshare/bond/bond_nafmii.py,sha256=cekcobyXKMG1zDuM8wHWOn__SuWELxYmUwfGVmLRP40,2155
|
|
33
33
|
akshare/bond/bond_summary.py,sha256=_Z2OVjE3UpfxN2GhQ2FoE9eHCjQFENz0DStyJQcYkH4,3584
|
|
34
|
-
akshare/bond/bond_zh_cov.py,sha256=
|
|
34
|
+
akshare/bond/bond_zh_cov.py,sha256=yrL4R4H7rV824ri0qO-Cis36ADJwvEtBODTV_vcliv4,23512
|
|
35
35
|
akshare/bond/bond_zh_sina.py,sha256=msj7upgqaCTzC_MxzhUm7hVKtzHeWRUjlcjvZn2zlbw,4654
|
|
36
36
|
akshare/bond/cons.py,sha256=w5XTyOS4FdwrYFTtxwvtZr59teM29-OgzLqRDXT0H2s,1805
|
|
37
37
|
akshare/cal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -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=
|
|
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=
|
|
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.
|
|
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.
|
|
399
|
-
akshare-1.17.
|
|
400
|
-
akshare-1.17.
|
|
401
|
-
akshare-1.17.
|
|
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,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|