akshare 1.17.79__py3-none-any.whl → 1.17.80__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
@@ -3186,9 +3186,10 @@ amac_manager_cancelled_info # 中国证券投资基金业协会-信息公示-诚
3186
3186
  1.17.77 fix: fix get_dce_daily interface
3187
3187
  1.17.78 fix: fix update python 3.14 support
3188
3188
  1.17.79 fix: fix futures_contract_info_dce interface
3189
+ 1.17.80 fix: fix futures_contract_detail_em interface
3189
3190
  """
3190
3191
 
3191
- __version__ = "1.17.79"
3192
+ __version__ = "1.17.80"
3192
3193
  __author__ = "AKFamily"
3193
3194
 
3194
3195
  import sys
@@ -3210,6 +3211,11 @@ if sys.version_info < (3, 9):
3210
3211
 
3211
3212
  del sys
3212
3213
 
3214
+ """
3215
+ openctp-合约信息接口
3216
+ """
3217
+ from akshare.option.option_contract_info_ctp import option_contract_info_ctp
3218
+
3213
3219
  """
3214
3220
  中国外汇交易中心暨全国银行间同业拆借中心-基准-外汇市场-外汇掉期曲线-外汇掉漆 C-Swap 定盘曲线
3215
3221
  """
@@ -4684,7 +4690,7 @@ from akshare.stock.stock_zh_kcb_report import stock_zh_kcb_report_em
4684
4690
  """
4685
4691
  期货合约详情
4686
4692
  """
4687
- from akshare.futures.futures_contract_detail import futures_contract_detail
4693
+ from akshare.futures.futures_contract_detail import futures_contract_detail, futures_contract_detail_em
4688
4694
 
4689
4695
  """
4690
4696
  胡润排行榜
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding:utf-8 -*-
3
3
  """
4
- Date: 2024/1/29 17:00
4
+ Date: 2025/10/30 17:00
5
5
  Desc: 查询期货合约当前时刻的详情
6
6
  https://finance.sina.com.cn/futures/quotes/V2101.shtml
7
7
  """
@@ -10,6 +10,7 @@ from io import StringIO
10
10
 
11
11
  import pandas as pd
12
12
  import requests
13
+ from bs4 import BeautifulSoup
13
14
 
14
15
 
15
16
  def futures_contract_detail(symbol: str = "AP2101") -> pd.DataFrame:
@@ -37,6 +38,52 @@ def futures_contract_detail(symbol: str = "AP2101") -> pd.DataFrame:
37
38
  return temp_df
38
39
 
39
40
 
41
+ def futures_contract_detail_em(symbol: str = "v2602F") -> pd.DataFrame:
42
+ """
43
+ 查询期货合约详情
44
+ https://quote.eastmoney.com/qihuo/v2602F.html
45
+ :param symbol: 合约
46
+ :type symbol: str
47
+ :return: 期货合约详情
48
+ :rtype: pandas.DataFrame
49
+ """
50
+ url = f"https://quote.eastmoney.com/qihuo/{symbol}.html"
51
+ r = requests.get(url)
52
+ soup = BeautifulSoup(r.text, features="lxml")
53
+ url_text = \
54
+ soup.find(name="div", attrs={"class": "sidertabbox_tsplit"}).find(name="div", attrs={"class": "onet"}).find(
55
+ "a")[
56
+ 'href']
57
+ inner_symbol = url_text.split("#")[-1].strip("futures_")
58
+ url = f"https://futsse-static.eastmoney.com/redis?msgid={inner_symbol}_info"
59
+ r = requests.get(url)
60
+ data_json = r.json()
61
+ temp_df = pd.DataFrame.from_dict(data_json, orient="index")
62
+ column_mapping = {
63
+ 'vname': '交易品种',
64
+ 'vcode': '交易代码',
65
+ 'jydw': '交易单位',
66
+ 'bjdw': '报价单位',
67
+ 'market': '上市交易所',
68
+ 'zxbddw': '最小变动价格',
69
+ 'zdtbfd': '跌涨停板幅度',
70
+ 'hyjgyf': '合约交割月份',
71
+ 'jysj': '交易时间',
72
+ 'zhjyr': '最后交易日',
73
+ 'zhjgr': '最后交割日',
74
+ 'jgpj': '交割品级',
75
+ 'zcjybzj': '最初交易保证金',
76
+ 'jgfs': '交割方式'
77
+ }
78
+ temp_df.rename(index=column_mapping, inplace=True)
79
+ temp_df.reset_index(drop=False, inplace=True)
80
+ temp_df.columns = ['item', 'value']
81
+ return temp_df
82
+
83
+
40
84
  if __name__ == "__main__":
41
- futures_contract_detail_df = futures_contract_detail(symbol="IM2402")
85
+ futures_contract_detail_df = futures_contract_detail(symbol="V2101")
42
86
  print(futures_contract_detail_df)
87
+
88
+ futures_contract_detail_em_df = futures_contract_detail_em(symbol="v2603F")
89
+ print(futures_contract_detail_em_df)
@@ -0,0 +1,63 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding:utf-8 -*-
3
+ """
4
+ Date: 2025/10/30 17:40
5
+ Desc: openctp-合约信息接口
6
+ http://openctp.cn/instruments.html
7
+ """
8
+
9
+ import pandas as pd
10
+ import requests
11
+
12
+
13
+ def option_contract_info_ctp() -> pd.DataFrame:
14
+ """
15
+ openctp-合约信息接口-期权合约
16
+ http://openctp.cn/instruments.html
17
+ :return: 期权合约信息
18
+ :rtype: pandas.DataFrame
19
+ """
20
+ url = "http://dict.openctp.cn/instruments?types=option"
21
+ r = requests.get(url)
22
+ data_json = r.json()
23
+ temp_df = pd.DataFrame(data_json['data'])
24
+
25
+ # 字段映射:英文字段名 -> 中文字段名
26
+ column_mapping = {
27
+ 'ExchangeID': '交易所ID',
28
+ 'InstrumentID': '合约ID',
29
+ 'InstrumentName': '合约名称',
30
+ 'ProductClass': '商品类别',
31
+ 'ProductID': '品种ID',
32
+ 'VolumeMultiple': '合约乘数',
33
+ 'PriceTick': '最小变动价位',
34
+ 'LongMarginRatioByMoney': '做多保证金率',
35
+ 'ShortMarginRatioByMoney': '做空保证金率',
36
+ 'LongMarginRatioByVolume': '做多保证金/手',
37
+ 'ShortMarginRatioByVolume': '做空保证金/手',
38
+ 'OpenRatioByMoney': '开仓手续费率',
39
+ 'OpenRatioByVolume': '开仓手续费/手',
40
+ 'CloseRatioByMoney': '平仓手续费率',
41
+ 'CloseRatioByVolume': '平仓手续费/手',
42
+ 'CloseTodayRatioByMoney': '平今手续费率',
43
+ 'CloseTodayRatioByVolume': '平今手续费/手',
44
+ 'DeliveryYear': '交割年份',
45
+ 'DeliveryMonth': '交割月份',
46
+ 'OpenDate': '上市日期',
47
+ 'ExpireDate': '最后交易日',
48
+ 'DeliveryDate': '交割日',
49
+ 'UnderlyingInstrID': '标的合约ID',
50
+ 'UnderlyingMultiple': '标的合约乘数',
51
+ 'OptionsType': '期权类型',
52
+ 'StrikePrice': '行权价',
53
+ 'InstLifePhase': '合约状态'
54
+ }
55
+ # 重命名列为中文
56
+ temp_df = temp_df.rename(columns=column_mapping)
57
+ return temp_df
58
+
59
+
60
+ # 使用示例
61
+ if __name__ == "__main__":
62
+ option_contract_info_ctp_df = option_contract_info_ctp()
63
+ print(option_contract_info_ctp_df)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: akshare
3
- Version: 1.17.79
3
+ Version: 1.17.80
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=ArGXqIb7a8jv-sv4GY_z7akxCk5uetHvFdItlphKoYc,199870
1
+ akshare/__init__.py,sha256=Rb7gDxWNlSLBL0i0lfpucP6P2GjDmocDP3v8FOQvhwA,200065
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
@@ -114,7 +114,7 @@ akshare/futures/futures_basis.py,sha256=YB-fOUTCanNZqHNcJXJdFqpCBi9_NYbrTlzx2st5
114
114
  akshare/futures/futures_comex_em.py,sha256=NPwOCD6lZUDL4wlGxvbmmJIFkQlW427ERO0vTux13WU,3172
115
115
  akshare/futures/futures_comm_ctp.py,sha256=IyVRCUvhLTFzmcUVvlIaYZ1e38ll7AF8ExhgtXKuzrI,1003
116
116
  akshare/futures/futures_comm_qihuo.py,sha256=uQfabZ63qME8sTaxUbIUVQBVi8yTaPPDhD7voR9PEx0,10504
117
- akshare/futures/futures_contract_detail.py,sha256=Glm1x72WBwF4G-f_ZYzHsbNhlQ6Ti1HeF0Rzhx-pfFg,1190
117
+ akshare/futures/futures_contract_detail.py,sha256=kDovLUtHELjv3kVkMWMuvsXLkZNnRS_R5hlxE4WBdJ0,2877
118
118
  akshare/futures/futures_daily_bar.py,sha256=LYT9_NmIBoHXtrK_jz0iuOKvfA5xZJ4GvDnxDKm-d9k,25057
119
119
  akshare/futures/futures_foreign.py,sha256=2cbMA-eug_jriDFwKZWmA_TbPW2GQAjscpZHBrs287E,2131
120
120
  akshare/futures/futures_hf_em.py,sha256=juiJauO7T6YTHXIS--ZDW-Idk73KMOrXgRBi1xEiBqA,8195
@@ -201,6 +201,7 @@ akshare/option/cons.py,sha256=WgeX4UvkvFmTsNTMYwXcIJkqSfCw6A3hn3qM73QrIM0,4817
201
201
  akshare/option/option_comm_qihuo.py,sha256=kjbdp-94KJJJi1ex5U03abtlgviqwP0Aahb6FwddPkk,3128
202
202
  akshare/option/option_commodity.py,sha256=tgWqOXBy-GW78qRcsDdn6br-DDWhldQtix5nDN2A4EE,26333
203
203
  akshare/option/option_commodity_sina.py,sha256=NN2qywfGZphKlHiEuwU7_3aNXTEKaXH0UrU8xLIQ5XQ,7731
204
+ akshare/option/option_contract_info_ctp.py,sha256=DPXdneZ8UQdqnf4Koq8a6XmFjxXQkCiV_rzo3IzDIUM,2110
204
205
  akshare/option/option_current_sse.py,sha256=jdzQPTXNqFLURMdbqovhOeQNvemN59beuotIJzhdNX8,2033
205
206
  akshare/option/option_current_szse.py,sha256=_6QTRnpLoVwXnUtSPDR1pqEq27Lnksq_9Sl_O06kP28,3551
206
207
  akshare/option/option_czce.py,sha256=9FCgqgxrHX3DBdvg3F6HZ1Hs7uSO7w21KJWpS8Wykgg,2538
@@ -399,10 +400,10 @@ akshare/utils/func.py,sha256=4cwmXFztU86yJNONJ40KJLvsIEQHBbct4iMm3zT2v30,2315
399
400
  akshare/utils/multi_decrypt.py,sha256=aWoL2iEPeuXHJg8-n7OtMKixLnIhfzepACgxfrfmQB4,1657
400
401
  akshare/utils/token_process.py,sha256=nGtgnZGRprXJkhLXH8mcUH4TgIFwzsTOb0EaEPa0Euo,667
401
402
  akshare/utils/tqdm.py,sha256=MuPNwcswkOGjwWQOMWXi9ZvQ_RmW4obCWRj2i7HM7FE,847
402
- akshare-1.17.79.dist-info/licenses/LICENSE,sha256=s18q7gS2g1F9-Cnk5eqrJG4OGWSwSxVEMzIuT6HyYNY,1073
403
+ akshare-1.17.80.dist-info/licenses/LICENSE,sha256=s18q7gS2g1F9-Cnk5eqrJG4OGWSwSxVEMzIuT6HyYNY,1073
403
404
  tests/__init__.py,sha256=gNzhlO0UPjFq6Ieb38kaVIODXv4cTDByrdohAZnDYt4,82
404
405
  tests/test_func.py,sha256=j1MGYbZI2if2j_LY1S4FLsf4qfq4NwVqD5wmRlv5Log,832
405
- akshare-1.17.79.dist-info/METADATA,sha256=Smt8eGLyk8WzNk3ViPPNrS-OErkfjKB2H54ikk5WhTE,12765
406
- akshare-1.17.79.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
407
- akshare-1.17.79.dist-info/top_level.txt,sha256=jsf9ZzZPmHaISTVumQPsAw7vv7Yv-PdEVW70SMEelQQ,14
408
- akshare-1.17.79.dist-info/RECORD,,
406
+ akshare-1.17.80.dist-info/METADATA,sha256=8lFwKd4jNydrzNY2srjAw3TdXPQel6QWACRSszctsD0,12765
407
+ akshare-1.17.80.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
408
+ akshare-1.17.80.dist-info/top_level.txt,sha256=jsf9ZzZPmHaISTVumQPsAw7vv7Yv-PdEVW70SMEelQQ,14
409
+ akshare-1.17.80.dist-info/RECORD,,