akshare 1.16.14__py3-none-any.whl → 1.16.16__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.
- akshare/__init__.py +4 -1
- akshare/futures/futures_inventory_em.py +13 -8
- akshare/stock/stock_board_concept_em.py +91 -4
- {akshare-1.16.14.dist-info → akshare-1.16.16.dist-info}/METADATA +2 -2
- {akshare-1.16.14.dist-info → akshare-1.16.16.dist-info}/RECORD +8 -8
- {akshare-1.16.14.dist-info → akshare-1.16.16.dist-info}/WHEEL +1 -1
- {akshare-1.16.14.dist-info → akshare-1.16.16.dist-info}/LICENSE +0 -0
- {akshare-1.16.14.dist-info → akshare-1.16.16.dist-info}/top_level.txt +0 -0
akshare/__init__.py
CHANGED
@@ -3023,9 +3023,11 @@ amac_manager_cancelled_info # 中国证券投资基金业协会-信息公示-诚
|
|
3023
3023
|
1.16.12 fix: fix bond_zh_hs_cov_daily interface
|
3024
3024
|
1.16.13 fix: fix futures_inventory_99 interface
|
3025
3025
|
1.16.14 fix: fix stock_info_global_cls interface
|
3026
|
+
1.16.15 fix: fix stock_board_concept_name_em interface
|
3027
|
+
1.16.16 fix: fix stock_board_concept_spot_em interface
|
3026
3028
|
"""
|
3027
3029
|
|
3028
|
-
__version__ = "1.16.
|
3030
|
+
__version__ = "1.16.16"
|
3029
3031
|
__author__ = "AKFamily"
|
3030
3032
|
|
3031
3033
|
import sys
|
@@ -4053,6 +4055,7 @@ from akshare.stock.stock_board_concept_em import (
|
|
4053
4055
|
stock_board_concept_hist_em,
|
4054
4056
|
stock_board_concept_hist_min_em,
|
4055
4057
|
stock_board_concept_name_em,
|
4058
|
+
stock_board_concept_spot_em,
|
4056
4059
|
)
|
4057
4060
|
|
4058
4061
|
"""
|
@@ -1,19 +1,20 @@
|
|
1
1
|
#!/usr/bin/env python
|
2
2
|
# -*- coding:utf-8 -*-
|
3
3
|
"""
|
4
|
-
Date:
|
4
|
+
Date: 2025/2/27 17:00
|
5
5
|
Desc: 东方财富网-数据中心-期货库存数据
|
6
6
|
https://data.eastmoney.com/ifdata/kcsj.html
|
7
7
|
"""
|
8
|
+
|
8
9
|
import pandas as pd
|
9
10
|
import requests
|
10
11
|
|
11
12
|
|
12
|
-
def futures_inventory_em(symbol: str = "
|
13
|
+
def futures_inventory_em(symbol: str = "A") -> pd.DataFrame:
|
13
14
|
"""
|
14
15
|
东方财富网-数据中心-期货库存数据
|
15
16
|
https://data.eastmoney.com/ifdata/kcsj.html
|
16
|
-
:param symbol: https://data.eastmoney.com/ifdata/kcsj.html
|
17
|
+
:param symbol: 支持品种代码和中文名称,中文名称参见:https://data.eastmoney.com/ifdata/kcsj.html
|
17
18
|
:type symbol: str
|
18
19
|
:return: 指定品种的库存数据
|
19
20
|
:rtype: pandas.DataFrame
|
@@ -33,12 +34,17 @@ def futures_inventory_em(symbol: str = "沪铝") -> pd.DataFrame:
|
|
33
34
|
data_json = r.json()
|
34
35
|
temp_df = pd.DataFrame(data_json["result"]["data"])
|
35
36
|
symbol_dict = dict(zip(temp_df["TRADE_TYPE"], temp_df["TRADE_CODE"]))
|
36
|
-
|
37
|
+
if symbol in symbol_dict.keys():
|
38
|
+
product_id = symbol_dict[symbol]
|
39
|
+
elif symbol in symbol_dict.values(): # 如果输入的是代码
|
40
|
+
product_id = symbol
|
41
|
+
else:
|
42
|
+
raise ValueError(f"请输入正确的 symbol, 可选项为: {symbol_dict}")
|
37
43
|
url = "https://datacenter-web.eastmoney.com/api/data/v1/get"
|
38
44
|
params = {
|
39
45
|
"reportName": "RPT_FUTU_STOCKDATA",
|
40
46
|
"columns": "SECURITY_CODE,TRADE_DATE,ON_WARRANT_NUM,ADDCHANGE",
|
41
|
-
"filter": f"""(SECURITY_CODE="{
|
47
|
+
"filter": f"""(SECURITY_CODE="{product_id}")(TRADE_DATE>='2020-10-28')""",
|
42
48
|
"pageNumber": "1",
|
43
49
|
"pageSize": "500",
|
44
50
|
"sortTypes": "-1",
|
@@ -50,17 +56,16 @@ def futures_inventory_em(symbol: str = "沪铝") -> pd.DataFrame:
|
|
50
56
|
r = requests.get(url, params=params)
|
51
57
|
data_json = r.json()
|
52
58
|
temp_df = pd.DataFrame(data_json["result"]["data"])
|
53
|
-
|
54
59
|
temp_df.columns = ["-", "日期", "库存", "增减"]
|
55
60
|
temp_df = temp_df[["日期", "库存", "增减"]]
|
56
61
|
temp_df.sort_values(["日期"], inplace=True)
|
57
62
|
temp_df.reset_index(inplace=True, drop=True)
|
58
63
|
temp_df["库存"] = pd.to_numeric(temp_df["库存"], errors="coerce")
|
59
64
|
temp_df["增减"] = pd.to_numeric(temp_df["增减"], errors="coerce")
|
60
|
-
temp_df["日期"] = pd.to_datetime(temp_df["日期"]).dt.date
|
65
|
+
temp_df["日期"] = pd.to_datetime(temp_df["日期"], errors="coerce").dt.date
|
61
66
|
return temp_df
|
62
67
|
|
63
68
|
|
64
69
|
if __name__ == "__main__":
|
65
|
-
futures_inventory_em_df = futures_inventory_em(symbol="
|
70
|
+
futures_inventory_em_df = futures_inventory_em(symbol="A")
|
66
71
|
print(futures_inventory_em_df)
|
@@ -1,7 +1,7 @@
|
|
1
1
|
#!/usr/bin/env python
|
2
2
|
# -*- coding:utf-8 -*-
|
3
3
|
"""
|
4
|
-
Date: 2025/2/
|
4
|
+
Date: 2025/2/26 17:00
|
5
5
|
Desc: 东方财富-沪深板块-概念板块
|
6
6
|
https://quote.eastmoney.com/center/boardlist.html#concept_board
|
7
7
|
"""
|
@@ -29,7 +29,91 @@ def stock_board_concept_name_em() -> pd.DataFrame:
|
|
29
29
|
"ut": "bd1d9ddb04089700cf9c27f6f7426281",
|
30
30
|
"fltt": "2",
|
31
31
|
"invt": "2",
|
32
|
-
"fid": "
|
32
|
+
"fid": "f3",
|
33
|
+
"fs": "m:90 t:3 f:!50",
|
34
|
+
"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",
|
35
|
+
"_": "1626075887768",
|
36
|
+
}
|
37
|
+
r = requests.get(url, params=params)
|
38
|
+
data_json = r.json()
|
39
|
+
temp_df = pd.DataFrame(data_json["data"]["diff"]).T
|
40
|
+
temp_df.reset_index(inplace=True)
|
41
|
+
temp_df["index"] = range(1, len(temp_df) + 1)
|
42
|
+
temp_df.columns = [
|
43
|
+
"排名",
|
44
|
+
"最新价",
|
45
|
+
"涨跌幅",
|
46
|
+
"涨跌额",
|
47
|
+
"换手率",
|
48
|
+
"_",
|
49
|
+
"板块代码",
|
50
|
+
"板块名称",
|
51
|
+
"_",
|
52
|
+
"_",
|
53
|
+
"_",
|
54
|
+
"_",
|
55
|
+
"总市值",
|
56
|
+
"_",
|
57
|
+
"_",
|
58
|
+
"_",
|
59
|
+
"_",
|
60
|
+
"_",
|
61
|
+
"_",
|
62
|
+
"上涨家数",
|
63
|
+
"下跌家数",
|
64
|
+
"_",
|
65
|
+
"_",
|
66
|
+
"领涨股票",
|
67
|
+
"_",
|
68
|
+
"_",
|
69
|
+
"领涨股票-涨跌幅",
|
70
|
+
]
|
71
|
+
temp_df = temp_df[
|
72
|
+
[
|
73
|
+
"排名",
|
74
|
+
"板块名称",
|
75
|
+
"板块代码",
|
76
|
+
"最新价",
|
77
|
+
"涨跌额",
|
78
|
+
"涨跌幅",
|
79
|
+
"总市值",
|
80
|
+
"换手率",
|
81
|
+
"上涨家数",
|
82
|
+
"下跌家数",
|
83
|
+
"领涨股票",
|
84
|
+
"领涨股票-涨跌幅",
|
85
|
+
]
|
86
|
+
]
|
87
|
+
temp_df["最新价"] = pd.to_numeric(temp_df["最新价"], errors="coerce")
|
88
|
+
temp_df["涨跌额"] = pd.to_numeric(temp_df["涨跌额"], errors="coerce")
|
89
|
+
temp_df["涨跌幅"] = pd.to_numeric(temp_df["涨跌幅"], errors="coerce")
|
90
|
+
temp_df["总市值"] = pd.to_numeric(temp_df["总市值"], errors="coerce")
|
91
|
+
temp_df["换手率"] = pd.to_numeric(temp_df["换手率"], errors="coerce")
|
92
|
+
temp_df["上涨家数"] = pd.to_numeric(temp_df["上涨家数"], errors="coerce")
|
93
|
+
temp_df["下跌家数"] = pd.to_numeric(temp_df["下跌家数"], errors="coerce")
|
94
|
+
temp_df["领涨股票-涨跌幅"] = pd.to_numeric(
|
95
|
+
temp_df["领涨股票-涨跌幅"], errors="coerce"
|
96
|
+
)
|
97
|
+
return temp_df
|
98
|
+
|
99
|
+
|
100
|
+
def stock_board_concept_spot_em() -> pd.DataFrame:
|
101
|
+
"""
|
102
|
+
东方财富网-行情中心-沪深京板块-概念板块-实时行情
|
103
|
+
https://quote.eastmoney.com/center/boardlist.html#concept_board
|
104
|
+
:return: 概念板块-实时行情
|
105
|
+
:rtype: pandas.DataFrame
|
106
|
+
"""
|
107
|
+
url = "https://79.push2.eastmoney.com/api/qt/clist/get"
|
108
|
+
params = {
|
109
|
+
"pn": "1",
|
110
|
+
"pz": "50000",
|
111
|
+
"po": "1",
|
112
|
+
"np": "2",
|
113
|
+
"ut": "bd1d9ddb04089700cf9c27f6f7426281",
|
114
|
+
"fltt": "2",
|
115
|
+
"invt": "2",
|
116
|
+
"fid": "f3",
|
33
117
|
"fs": "m:90 t:3 f:!50",
|
34
118
|
"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",
|
35
119
|
"_": "1626075887768",
|
@@ -98,7 +182,7 @@ def stock_board_concept_name_em() -> pd.DataFrame:
|
|
98
182
|
|
99
183
|
|
100
184
|
def stock_board_concept_hist_em(
|
101
|
-
symbol: str = "
|
185
|
+
symbol: str = "绿色电力",
|
102
186
|
period: str = "daily",
|
103
187
|
start_date: str = "20220101",
|
104
188
|
end_date: str = "20221128",
|
@@ -406,11 +490,14 @@ if __name__ == "__main__":
|
|
406
490
|
stock_board_concept_em_df = stock_board_concept_name_em()
|
407
491
|
print(stock_board_concept_em_df)
|
408
492
|
|
493
|
+
stock_board_concept_spot_em_df = stock_board_concept_spot_em()
|
494
|
+
print(stock_board_concept_spot_em_df)
|
495
|
+
|
409
496
|
stock_board_concept_hist_em_df = stock_board_concept_hist_em(
|
410
497
|
symbol="绿色电力",
|
411
498
|
period="daily",
|
412
499
|
start_date="20220101",
|
413
|
-
end_date="
|
500
|
+
end_date="20250227",
|
414
501
|
adjust="",
|
415
502
|
)
|
416
503
|
print(stock_board_concept_hist_em_df)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: akshare
|
3
|
-
Version: 1.16.
|
3
|
+
Version: 1.16.16
|
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
|
@@ -50,7 +50,7 @@ Dynamic: requires-dist
|
|
50
50
|
Dynamic: requires-python
|
51
51
|
Dynamic: summary
|
52
52
|
|
53
|
-
|
53
|
+
**欢迎加入专注于财经数据和量化投资的知识社区,获取《AKShare-财经数据宝典》,请点击[了解更多](https://akshare.akfamily.xyz/learn.html)**
|
54
54
|
|
55
55
|
**量化投研视频课程:《PyBroker-入门及实战》已经上架!《PyBroker-进阶及实战》正在更新!**
|
56
56
|
|
@@ -1,4 +1,4 @@
|
|
1
|
-
akshare/__init__.py,sha256=
|
1
|
+
akshare/__init__.py,sha256=prx47KTjVEM_yjduO2LywB5h9TxVnalCrbb2TJ139u4,188363
|
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
|
@@ -117,7 +117,7 @@ akshare/futures/futures_hist_em.py,sha256=Q8I20qRjp2ujiJMCCNBvTHXmrIth22p2k6Kpvb
|
|
117
117
|
akshare/futures/futures_hq_sina.py,sha256=eK1gEan4DPvpYmln8-tNnzh_J_733s95DBr--NqNYVA,9576
|
118
118
|
akshare/futures/futures_index_ccidx.py,sha256=_kgWioCOpFNn8WUcL5qKHGb3rUHzrbrx2AszprKpBh4,4460
|
119
119
|
akshare/futures/futures_inventory_99.py,sha256=0yqqF4oKJvMr0ihcgjB9i5pa5VMM4qVjv7wCqmXY6Pc,3356
|
120
|
-
akshare/futures/futures_inventory_em.py,sha256=
|
120
|
+
akshare/futures/futures_inventory_em.py,sha256=59Rc1A0KAY7RHoRWH7j1mGTqMxD14otcWUD77E6FzRs,2627
|
121
121
|
akshare/futures/futures_news_shmet.py,sha256=1epZ3MwDc-T2n1ie4SSDfvUaBiMpSL0Q_xb2VoZ_llU,2465
|
122
122
|
akshare/futures/futures_roll_yield.py,sha256=RiwN0yYwzYy8zGhmTopBwJ37aUQ7Llwh3eQRzn0apaE,6135
|
123
123
|
akshare/futures/futures_rule.py,sha256=38fJnUTohGqbwE65ZR1id7Oy-0DS-ODrGYsmx2jtGZ8,1571
|
@@ -231,7 +231,7 @@ 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=
|
234
|
+
akshare/stock/stock_board_concept_em.py,sha256=Inmp1_t3HYUZtESPEiWI8sppPagGUHuvh8v3DMl7cgM,16736
|
235
235
|
akshare/stock/stock_board_industry_em.py,sha256=ViXBcqSfUnBSvCDo-D7ZRupd9PpI1uEQ19KMAuGxGuQ,16201
|
236
236
|
akshare/stock/stock_cg_equity_mortgage.py,sha256=Pui5aWKKPwGuKjF_GNpejDzsMGNPrxiaJviLz3x2e9I,3426
|
237
237
|
akshare/stock/stock_cg_guarantee.py,sha256=ts7qcQhhyN1PHB7Q4XlMn38HhfVvubOvky9RZfmUP94,3844
|
@@ -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.16.
|
384
|
-
akshare-1.16.
|
385
|
-
akshare-1.16.
|
386
|
-
akshare-1.16.
|
387
|
-
akshare-1.16.
|
383
|
+
akshare-1.16.16.dist-info/LICENSE,sha256=mmSZCPgfHiVw34LXuFArd-SUgQtBJ_QsIlh-kWlDHfs,1073
|
384
|
+
akshare-1.16.16.dist-info/METADATA,sha256=K8O_FccamgG_aLGLi1UrsaYWliTGqkT3zLBS-sqt6jE,13720
|
385
|
+
akshare-1.16.16.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
|
386
|
+
akshare-1.16.16.dist-info/top_level.txt,sha256=jsf9ZzZPmHaISTVumQPsAw7vv7Yv-PdEVW70SMEelQQ,14
|
387
|
+
akshare-1.16.16.dist-info/RECORD,,
|
File without changes
|
File without changes
|