akshare 1.14.49__py3-none-any.whl → 1.17.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.
- akshare/__init__.py +595 -129
- akshare/air/air_hebei.py +77 -54
- akshare/air/air_zhenqi.py +0 -4
- akshare/air/cons.py +1 -0
- akshare/air/crypto.js +1 -1
- akshare/air/outcrypto.js +1 -1
- akshare/article/cons.py +1 -0
- akshare/article/epu_index.py +4 -3
- akshare/article/ff_factor.py +19 -8
- akshare/article/fred_md.py +4 -1
- akshare/article/risk_rv.py +3 -8
- akshare/bank/bank_cbirc_2020.py +11 -11
- akshare/bank/cons.py +7 -6
- akshare/bond/bond_buy_back_em.py +228 -0
- akshare/bond/bond_cb_sina.py +1 -0
- akshare/bond/bond_cb_ths.py +17 -9
- akshare/bond/bond_cbond.py +19 -14
- akshare/bond/bond_china.py +38 -39
- akshare/bond/bond_china_money.py +1 -1
- akshare/bond/bond_convert.py +10 -9
- akshare/bond/bond_em.py +37 -17
- akshare/bond/bond_summary.py +38 -37
- akshare/bond/bond_zh_cov.py +31 -40
- akshare/bond/bond_zh_sina.py +4 -0
- akshare/bond/cons.py +14 -11
- akshare/cal/__init__.py +0 -0
- akshare/cal/rv.py +170 -0
- akshare/cost/cost_living.py +7 -5
- akshare/crypto/__init__.py +1 -1
- akshare/crypto/crypto_bitcoin_cme.py +9 -7
- akshare/crypto/crypto_hold.py +4 -2
- akshare/currency/currency.py +1 -0
- akshare/currency/currency_china_bank_sina.py +11 -6
- akshare/data/__init__.py +1 -1
- akshare/data/cninfo.js +1 -1
- akshare/datasets.py +10 -21
- akshare/economic/cons.py +10 -3
- akshare/economic/macro_australia.py +74 -69
- akshare/economic/macro_bank.py +95 -653
- akshare/economic/macro_canada.py +92 -81
- akshare/economic/macro_china.py +97 -105
- akshare/economic/macro_china_hk.py +0 -1
- akshare/economic/macro_euro.py +103 -56
- akshare/economic/macro_finance_ths.py +7 -5
- akshare/economic/macro_germany.py +1 -1
- akshare/economic/macro_japan.py +0 -1
- akshare/economic/macro_other.py +1 -6
- akshare/economic/macro_swiss.py +2 -3
- akshare/economic/macro_uk.py +1 -1
- akshare/economic/macro_usa.py +7 -9
- akshare/economic/marco_cnbs.py +11 -6
- akshare/energy/energy_carbon.py +0 -1
- akshare/energy/energy_oil_em.py +1 -2
- akshare/event/cons.py +1 -0
- akshare/exceptions.py +43 -0
- akshare/file_fold/calendar.json +245 -2
- akshare/forex/__init__.py +0 -0
- akshare/forex/cons.py +192 -0
- akshare/forex/forex_em.py +149 -0
- akshare/fortune/fortune_500.py +1 -37
- akshare/fortune/fortune_bloomberg.py +6 -3
- akshare/fortune/fortune_forbes_500.py +3 -6
- akshare/fortune/fortune_hurun.py +2 -1
- akshare/fortune/fortune_xincaifu_500.py +17 -14
- akshare/fund/fund_announcement_em.py +145 -0
- akshare/fund/fund_aum_em.py +49 -35
- akshare/fund/fund_em.py +251 -220
- akshare/fund/fund_etf_em.py +44 -35
- akshare/fund/fund_etf_sina.py +75 -27
- akshare/fund/fund_etf_ths.py +2 -0
- akshare/fund/fund_fee_em.py +172 -0
- akshare/fund/fund_fhsp_em.py +42 -32
- akshare/fund/fund_init_em.py +8 -5
- akshare/fund/fund_lof_em.py +12 -19
- akshare/fund/fund_manager.py +25 -11
- akshare/fund/fund_overview_em.py +42 -0
- akshare/fund/fund_portfolio_em.py +23 -21
- akshare/fund/fund_position_lg.py +19 -8
- akshare/fund/fund_rank_em.py +2 -5
- akshare/fund/fund_rating.py +33 -12
- akshare/fund/fund_scale_em.py +24 -13
- akshare/fund/fund_scale_sina.py +20 -10
- akshare/fund/fund_xq.py +3 -2
- akshare/futures/cons.py +135 -39
- akshare/futures/cot.py +55 -56
- akshare/futures/futures_basis.py +49 -11
- akshare/futures/futures_comex_em.py +1 -0
- akshare/futures/futures_comm_ctp.py +1 -1
- akshare/futures/futures_contract_detail.py +59 -9
- akshare/futures/futures_daily_bar.py +66 -59
- akshare/futures/futures_foreign.py +14 -8
- akshare/futures/futures_hf_em.py +215 -61
- akshare/futures/futures_hist_em.py +191 -0
- akshare/futures/futures_hq_sina.py +5 -3
- akshare/futures/futures_index_ccidx.py +24 -82
- akshare/futures/futures_inventory_99.py +70 -272
- akshare/futures/futures_inventory_em.py +14 -11
- akshare/futures/futures_news_shmet.py +2 -2
- akshare/futures/futures_roll_yield.py +11 -24
- akshare/futures/futures_rule.py +7 -3
- akshare/futures/futures_rule_em.py +38 -0
- akshare/futures/futures_settlement_price_sgx.py +21 -6
- akshare/futures/futures_stock_js.py +0 -1
- akshare/futures/futures_to_spot.py +5 -6
- akshare/futures/futures_warehouse_receipt.py +48 -47
- akshare/futures/futures_zh_sina.py +3 -3
- akshare/futures/receipt.py +298 -165
- akshare/futures/requests_fun.py +16 -3
- akshare/futures/symbol_var.py +32 -13
- akshare/futures_derivative/cons.py +100 -103
- akshare/futures_derivative/futures_contract_info_cffex.py +55 -39
- akshare/futures_derivative/futures_contract_info_czce.py +2 -0
- akshare/futures_derivative/futures_contract_info_dce.py +43 -17
- akshare/futures_derivative/futures_contract_info_gfex.py +43 -31
- akshare/futures_derivative/futures_contract_info_ine.py +43 -34
- akshare/futures_derivative/futures_contract_info_shfe.py +3 -4
- akshare/futures_derivative/futures_cot_sina.py +8 -6
- akshare/futures_derivative/futures_index_sina.py +25 -13
- akshare/fx/cons.py +12 -7
- akshare/fx/fx_c_swap_cm.py +62 -0
- akshare/fx/fx_quote.py +3 -2
- akshare/fx/fx_quote_baidu.py +2 -1
- akshare/hf/__init__.py +1 -1
- akshare/hf/hf_sp500.py +8 -7
- akshare/index/cons.py +132 -28
- akshare/index/index_cni.py +7 -7
- akshare/index/index_cons.py +2 -2
- akshare/index/index_csindex.py +68 -0
- akshare/index/index_cx.py +20 -20
- akshare/index/index_drewry.py +17 -16
- akshare/index/index_eri.py +1 -0
- akshare/index/index_global_em.py +167 -0
- akshare/index/index_global_sina.py +82 -0
- akshare/index/index_kq_fz.py +17 -14
- akshare/index/index_kq_ss.py +1 -0
- akshare/index/index_option_qvix.py +351 -16
- akshare/index/index_research_sw.py +21 -21
- akshare/index/index_spot.py +9 -5
- akshare/index/index_stock_hk.py +5 -9
- akshare/index/index_stock_zh.py +111 -24
- akshare/index/index_stock_zh_csindex.py +3 -367
- akshare/index/index_sugar.py +18 -4
- akshare/index/index_sw.py +10 -2
- akshare/index/index_yw.py +53 -75
- akshare/index/index_zh_em.py +15 -82
- akshare/interest_rate/interbank_rate_em.py +0 -1
- akshare/movie/jm.js +0 -1
- akshare/news/__init__.py +1 -1
- akshare/news/news_baidu.py +395 -222
- akshare/news/news_stock.py +49 -16
- akshare/option/cons.py +2 -2
- akshare/option/option_commodity.py +341 -220
- akshare/option/option_commodity_sina.py +22 -26
- akshare/option/option_contract_info_ctp.py +63 -0
- akshare/option/option_current_sse.py +61 -0
- akshare/option/option_current_szse.py +84 -0
- akshare/option/option_czce.py +37 -9
- akshare/option/option_daily_stats_sse_szse.py +0 -1
- akshare/option/option_em.py +4 -8
- akshare/option/option_finance.py +60 -12
- akshare/option/option_finance_sina.py +7 -7
- akshare/option/option_lhb_em.py +0 -1
- akshare/option/option_margin.py +62 -0
- akshare/option/option_premium_analysis_em.py +58 -53
- akshare/option/option_risk_analysis_em.py +11 -8
- akshare/option/option_risk_indicator_sse.py +3 -4
- akshare/option/option_value_analysis_em.py +62 -55
- akshare/other/__init__.py +1 -1
- akshare/pro/__init__.py +0 -1
- akshare/pro/client.py +6 -4
- akshare/pro/cons.py +3 -2
- akshare/pro/data_pro.py +6 -5
- akshare/qdii/__init__.py +0 -0
- akshare/qdii/qdii_jsl.py +233 -0
- akshare/qhkc/__init__.py +1 -6
- akshare/qhkc/qhkc_api.py +64 -22
- akshare/qhkc_web/__init__.py +1 -6
- akshare/qhkc_web/qhkc_fund.py +10 -6
- akshare/qhkc_web/qhkc_index.py +28 -14
- akshare/qhkc_web/qhkc_tool.py +62 -59
- akshare/rate/__init__.py +1 -1
- akshare/rate/repo_rate.py +36 -32
- akshare/reits/__init__.py +1 -1
- akshare/reits/reits_basic.py +149 -13
- akshare/request.py +117 -0
- akshare/spot/__init__.py +1 -1
- akshare/spot/spot_hog_soozhu.py +165 -3
- akshare/spot/spot_sge.py +70 -9
- akshare/stock/cons.py +60 -23
- akshare/stock/stock_allotment_cninfo.py +8 -8
- akshare/stock/stock_ask_bid_em.py +3 -78
- akshare/stock/stock_board_concept_em.py +160 -35
- akshare/stock/stock_board_industry_em.py +163 -70
- akshare/stock/stock_dividend_cninfo.py +31 -17
- akshare/stock/stock_dzjy_em.py +347 -260
- akshare/stock/stock_fund_em.py +72 -64
- akshare/stock/stock_fund_hold.py +1 -2
- akshare/stock/stock_gsrl_em.py +1 -0
- akshare/stock/stock_hk_comparison_em.py +175 -0
- akshare/stock/stock_hk_famous.py +4 -5
- akshare/stock/stock_hk_fhpx_ths.py +2 -1
- akshare/stock/stock_hk_hot_rank_em.py +1 -0
- akshare/stock/stock_hk_sina.py +84 -36
- akshare/stock/stock_hold_control_cninfo.py +82 -0
- akshare/stock/stock_hold_control_em.py +0 -2
- akshare/stock/stock_hot_rank_em.py +4 -1
- akshare/stock/stock_hot_search_baidu.py +32 -19
- akshare/stock/stock_hot_up_em.py +4 -1
- akshare/stock/stock_hsgt_em.py +155 -0
- akshare/stock/stock_industry.py +1 -0
- akshare/stock/stock_industry_cninfo.py +1 -2
- akshare/stock/stock_info.py +6 -4
- akshare/stock/stock_info_em.py +17 -11
- akshare/stock/stock_intraday_em.py +4 -78
- akshare/stock/stock_intraday_sina.py +2 -2
- akshare/stock/stock_news_cx.py +39 -0
- akshare/stock/stock_profile_cninfo.py +7 -7
- akshare/stock/stock_profile_em.py +302 -0
- akshare/stock/stock_rank_forecast.py +6 -5
- akshare/stock/stock_repurchase_em.py +7 -2
- akshare/stock/stock_share_changes_cninfo.py +7 -5
- akshare/stock/stock_share_hold.py +24 -20
- akshare/stock/stock_stop.py +6 -6
- akshare/stock/stock_summary.py +153 -417
- akshare/stock/stock_us_famous.py +5 -6
- akshare/stock/stock_us_js.py +3 -2
- akshare/stock/stock_us_pink.py +38 -27
- akshare/stock/stock_us_sina.py +7 -3
- akshare/stock/stock_weibo_nlp.py +18 -20
- akshare/stock/stock_xq.py +24 -22
- akshare/stock/stock_zh_a_sina.py +8 -5
- akshare/stock/stock_zh_a_special.py +240 -243
- akshare/stock/stock_zh_a_tick_tx.py +11 -3
- akshare/stock/stock_zh_ah_tx.py +23 -26
- akshare/stock/stock_zh_b_sina.py +2 -2
- akshare/stock/stock_zh_comparison_em.py +250 -0
- akshare/stock/stock_zh_kcb_sina.py +67 -64
- akshare/stock_a/__init__.py +0 -0
- akshare/stock_a/stock_board_concept_name_em.py +170 -0
- akshare/stock_a/stock_individual_fund_flow_rank.py +258 -0
- akshare/stock_a/stock_zh_a_spot.py +212 -0
- akshare/stock_feature/cons.py +1 -0
- akshare/stock_feature/stock_a_indicator.py +9 -54
- akshare/stock_feature/stock_a_pe_and_pb.py +23 -5
- akshare/stock_feature/stock_account_em.py +0 -1
- akshare/stock_feature/stock_all_pb.py +2 -1
- akshare/stock_feature/stock_analyst_em.py +36 -30
- akshare/stock_feature/stock_board_concept_ths.py +328 -0
- akshare/stock_feature/stock_board_industry_ths.py +57 -2
- akshare/stock_feature/stock_buffett_index_lg.py +10 -8
- akshare/stock_feature/stock_classify_sina.py +3 -6
- akshare/stock_feature/stock_comment_em.py +81 -144
- akshare/stock_feature/stock_congestion_lg.py +2 -1
- akshare/stock_feature/stock_cyq_em.py +5 -11
- akshare/stock_feature/stock_disclosure_cninfo.py +6 -6
- akshare/stock_feature/stock_dxsyl_em.py +121 -74
- akshare/stock_feature/stock_ebs_lg.py +5 -4
- akshare/stock_feature/stock_esg_sina.py +29 -7
- akshare/stock_feature/stock_fhps_em.py +2 -1
- akshare/stock_feature/stock_fhps_ths.py +15 -7
- akshare/stock_feature/stock_fund_flow.py +30 -22
- akshare/stock_feature/stock_gddh_em.py +19 -11
- akshare/stock_feature/stock_gdfx_em.py +226 -113
- akshare/stock_feature/stock_gdhs.py +75 -50
- akshare/stock_feature/stock_gdzjc_em.py +21 -10
- akshare/stock_feature/stock_gpzy_em.py +78 -46
- akshare/stock_feature/stock_gxl_lg.py +3 -2
- akshare/stock_feature/stock_hist_em.py +137 -234
- akshare/stock_feature/stock_hist_tx.py +13 -10
- akshare/stock_feature/stock_hk_valuation_baidu.py +20 -8
- akshare/stock_feature/stock_hot_xq.py +4 -6
- akshare/stock_feature/stock_hsgt_em.py +269 -97
- akshare/stock_feature/stock_hsgt_exchange_rate.py +115 -87
- akshare/stock_feature/stock_hsgt_min_em.py +13 -16
- akshare/stock_feature/stock_info.py +7 -80
- akshare/stock_feature/stock_inner_trade_xq.py +38 -31
- akshare/stock_feature/stock_jgdy_em.py +43 -40
- akshare/stock_feature/stock_lhb_em.py +119 -3
- akshare/stock_feature/stock_margin_em.py +0 -1
- akshare/stock_feature/stock_margin_sse.py +0 -2
- akshare/stock_feature/stock_pankou_em.py +71 -35
- akshare/stock_feature/stock_qsjy_em.py +13 -4
- akshare/stock_feature/stock_report_em.py +151 -7
- akshare/stock_feature/stock_research_report_em.py +55 -20
- akshare/stock_feature/stock_sy_em.py +20 -15
- akshare/stock_feature/stock_technology_ths.py +122 -77
- akshare/stock_feature/stock_tfp_em.py +2 -1
- akshare/stock_feature/stock_three_report_em.py +21 -5
- akshare/stock_feature/stock_ttm_lyr.py +18 -9
- akshare/stock_feature/stock_value_em.py +83 -0
- akshare/stock_feature/stock_yjbb_em.py +58 -32
- akshare/stock_feature/stock_yjyg_cninfo.py +6 -2
- akshare/stock_feature/stock_yjyg_em.py +1 -1
- akshare/stock_feature/stock_yzxdr_em.py +24 -22
- akshare/stock_feature/stock_zdhtmx_em.py +20 -6
- akshare/stock_feature/stock_zh_vote_baidu.py +4 -1
- akshare/stock_feature/stock_ztb_em.py +39 -24
- akshare/stock_fundamental/__init__.py +1 -1
- akshare/stock_fundamental/stock_basic_info_xq.py +119 -0
- akshare/stock_fundamental/{stock_finance_hk.py → stock_finance_hk_em.py} +23 -16
- akshare/stock_fundamental/{stock_finance.py → stock_finance_sina.py} +60 -7
- akshare/stock_fundamental/stock_finance_ths.py +524 -57
- akshare/stock_fundamental/stock_finance_us_em.py +268 -0
- akshare/stock_fundamental/stock_gbjg_em.py +80 -0
- akshare/stock_fundamental/stock_hold.py +26 -17
- akshare/stock_fundamental/stock_ipo_declare.py +1 -0
- akshare/stock_fundamental/stock_kcb_detail_sse.py +10 -10
- akshare/stock_fundamental/stock_kcb_sse.py +26 -25
- akshare/stock_fundamental/stock_notice.py +12 -3
- akshare/stock_fundamental/stock_profit_forecast_em.py +31 -13
- akshare/stock_fundamental/stock_profit_forecast_hk_etnet.py +64 -41
- akshare/stock_fundamental/stock_profit_forecast_ths.py +86 -35
- akshare/stock_fundamental/stock_recommend.py +20 -4
- akshare/stock_fundamental/stock_zygc.py +5 -62
- akshare/utils/context.py +43 -0
- akshare/utils/demjson.py +2009 -1338
- akshare/utils/func.py +49 -2
- akshare/utils/multi_decrypt.py +53 -0
- akshare/utils/token_process.py +6 -5
- {akshare-1.14.49.dist-info → akshare-1.17.99.dist-info}/METADATA +54 -80
- akshare-1.17.99.dist-info/RECORD +409 -0
- {akshare-1.14.49.dist-info → akshare-1.17.99.dist-info}/WHEEL +1 -1
- {akshare-1.14.49.dist-info → akshare-1.17.99.dist-info/licenses}/LICENSE +1 -1
- tests/test_func.py +3 -5
- akshare/bond/bond_futures.py +0 -50
- akshare/bond/bond_investing.py +0 -139
- akshare/crypto/crypto_hist_investing.py +0 -249
- akshare/fund/fund_announcement.py +0 -56
- akshare/futures/futures_international.py +0 -170
- akshare/futures/futures_news_baidu.py +0 -54
- akshare/futures/inventory_data.py +0 -100
- akshare/futures_derivative/futures_index_price_nh.py +0 -61
- akshare/futures_derivative/futures_index_return_nh.py +0 -47
- akshare/futures_derivative/futures_index_volatility_nh.py +0 -53
- akshare/futures_derivative/futures_other_index_nh.py +0 -145
- akshare/index/index_fear_greed_funddb.py +0 -78
- akshare/index/index_investing.py +0 -232
- akshare/sport/__init__.py +0 -6
- akshare/sport/sport_olympic.py +0 -27
- akshare/stock_feature/stock_wencai.py +0 -104
- akshare/stock_fundamental/stock_mda_ym.py +0 -40
- akshare-1.14.49.dist-info/RECORD +0 -387
- {akshare-1.14.49.dist-info → akshare-1.17.99.dist-info}/top_level.txt +0 -0
|
@@ -81,7 +81,7 @@ def option_cffex_sz50_spot_sina(symbol: str = "ho2303") -> pd.DataFrame:
|
|
|
81
81
|
:param symbol: 合约代码; 用 ak.option_cffex_sz300_list_sina() 函数查看
|
|
82
82
|
:type symbol: str
|
|
83
83
|
:return: 中金所-上证 50 指数-指定合约-看涨看跌实时行情
|
|
84
|
-
:rtype:
|
|
84
|
+
:rtype: pandas.DataFrame
|
|
85
85
|
"""
|
|
86
86
|
url = "https://stock.finance.sina.com.cn/futures/api/openapi.php/OptionService.getOptionData"
|
|
87
87
|
params = {
|
|
@@ -154,7 +154,7 @@ def option_cffex_hs300_spot_sina(symbol: str = "io2204") -> pd.DataFrame:
|
|
|
154
154
|
:param symbol: 合约代码; 用 option_cffex_hs300_list_sina 函数查看
|
|
155
155
|
:type symbol: str
|
|
156
156
|
:return: 中金所-沪深300指数-指定合约-看涨看跌实时行情
|
|
157
|
-
:rtype:
|
|
157
|
+
:rtype: pandas.DataFrame
|
|
158
158
|
"""
|
|
159
159
|
url = "https://stock.finance.sina.com.cn/futures/api/openapi.php/OptionService.getOptionData"
|
|
160
160
|
params = {
|
|
@@ -227,7 +227,7 @@ def option_cffex_zz1000_spot_sina(symbol: str = "mo2208") -> pd.DataFrame:
|
|
|
227
227
|
:param symbol: 合约代码; 用 option_cffex_zz1000_list_sina 函数查看
|
|
228
228
|
:type symbol: str
|
|
229
229
|
:return: 中金所-中证 1000 指数-指定合约-看涨看跌实时行情
|
|
230
|
-
:rtype:
|
|
230
|
+
:rtype: pandas.DataFrame
|
|
231
231
|
"""
|
|
232
232
|
url = "https://stock.finance.sina.com.cn/futures/api/openapi.php/OptionService.getOptionData"
|
|
233
233
|
params = {
|
|
@@ -299,7 +299,7 @@ def option_cffex_sz50_daily_sina(symbol: str = "ho2303P2350") -> pd.DataFrame:
|
|
|
299
299
|
:param symbol: 具体合约代码(包括看涨和看跌标识), 可以通过 ak.option_cffex_sz50_spot_sina 中的 call-标识 获取
|
|
300
300
|
:type symbol: str
|
|
301
301
|
:return: 日频率数据
|
|
302
|
-
:rtype:
|
|
302
|
+
:rtype: pandas.DataFrame
|
|
303
303
|
"""
|
|
304
304
|
year = datetime.datetime.now().year
|
|
305
305
|
month = datetime.datetime.now().month
|
|
@@ -340,7 +340,7 @@ def option_cffex_hs300_daily_sina(symbol: str = "io2202P4350") -> pd.DataFrame:
|
|
|
340
340
|
:param symbol: 具体合约代码(包括看涨和看跌标识), 可以通过 ak.option_cffex_hs300_spot_sina 中的 call-标识 获取
|
|
341
341
|
:type symbol: str
|
|
342
342
|
:return: 日频率数据
|
|
343
|
-
:rtype:
|
|
343
|
+
:rtype: pandas.DataFrame
|
|
344
344
|
"""
|
|
345
345
|
year = datetime.datetime.now().year
|
|
346
346
|
month = datetime.datetime.now().month
|
|
@@ -383,7 +383,7 @@ def option_cffex_zz1000_daily_sina(
|
|
|
383
383
|
:param symbol: 具体合约代码(包括看涨和看跌标识), 可以通过 ak.option_cffex_zz1000_spot_sina 中的 call-标识 获取
|
|
384
384
|
:type symbol: str
|
|
385
385
|
:return: 日频率数据
|
|
386
|
-
:rtype:
|
|
386
|
+
:rtype: pandas.DataFrame
|
|
387
387
|
"""
|
|
388
388
|
year = datetime.datetime.now().year
|
|
389
389
|
month = datetime.datetime.now().month
|
|
@@ -975,5 +975,5 @@ if __name__ == "__main__":
|
|
|
975
975
|
option_current_em_df = option_current_em()
|
|
976
976
|
print(option_current_em_df)
|
|
977
977
|
|
|
978
|
-
option_minute_em_df = option_minute_em(symbol="
|
|
978
|
+
option_minute_em_df = option_minute_em(symbol="10008594")
|
|
979
979
|
print(option_minute_em_df)
|
akshare/option/option_lhb_em.py
CHANGED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
#!/usr/bin/env python
|
|
2
|
+
# -*- coding:utf-8 -*-
|
|
3
|
+
"""
|
|
4
|
+
Date: 2025/6/16 18:00
|
|
5
|
+
Desc: 唯爱期货-期权保证金
|
|
6
|
+
https://www.iweiai.com/qihuo/yuanyou
|
|
7
|
+
"""
|
|
8
|
+
import requests
|
|
9
|
+
import pandas as pd
|
|
10
|
+
from io import StringIO
|
|
11
|
+
|
|
12
|
+
from bs4 import BeautifulSoup
|
|
13
|
+
from functools import lru_cache
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
@lru_cache()
|
|
17
|
+
def option_margin_symbol() -> pd.DataFrame:
|
|
18
|
+
"""
|
|
19
|
+
获取商品期权品种代码和名称
|
|
20
|
+
:return: 商品期权品种代码和名称
|
|
21
|
+
:rtype: pandas.DataFrame
|
|
22
|
+
"""
|
|
23
|
+
url = "https://www.iweiai.com/qiquan/yuanyou"
|
|
24
|
+
r = requests.get(url)
|
|
25
|
+
soup = BeautifulSoup(r.content, features="lxml")
|
|
26
|
+
symbol_text = [item.get_text() for item in soup.find_all("a") if "qiquan" in item['href']]
|
|
27
|
+
symbol_url = [item['href'] for item in soup.find_all("a") if "qiquan" in item['href']]
|
|
28
|
+
symbol_df = pd.DataFrame([symbol_text, symbol_url]).T
|
|
29
|
+
symbol_df.columns = ["symbol", "url"]
|
|
30
|
+
return symbol_df
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
def option_margin(symbol: str = "原油期权") -> pd.DataFrame:
|
|
34
|
+
"""
|
|
35
|
+
获取商品期权保证金
|
|
36
|
+
:param symbol: 商品期权品种名称, 如 "原油期权",可以通过 ak.option_margin_symbol() 获取所有商品期权品种代码和名称
|
|
37
|
+
:type symbol: str
|
|
38
|
+
:return: 商品期权保证金
|
|
39
|
+
:rtype: pandas.DataFrame
|
|
40
|
+
"""
|
|
41
|
+
option_margin_symbol_df = option_margin_symbol()
|
|
42
|
+
url = option_margin_symbol_df[option_margin_symbol_df['symbol'] == symbol]['url'].values[0]
|
|
43
|
+
r = requests.get(url)
|
|
44
|
+
soup = BeautifulSoup(r.content, features="lxml")
|
|
45
|
+
updated_time = soup.find_all("small")[0].get_text().strip("最近更新:")
|
|
46
|
+
temp_df = pd.read_html(StringIO(r.text))[0]
|
|
47
|
+
temp_df['更新时间'] = updated_time
|
|
48
|
+
|
|
49
|
+
temp_df['结算价'] = pd.to_numeric(temp_df['结算价'], errors='coerce')
|
|
50
|
+
temp_df['交易乘数'] = pd.to_numeric(temp_df['交易乘数'], errors='coerce')
|
|
51
|
+
temp_df['买方权利金'] = pd.to_numeric(temp_df['买方权利金'], errors='coerce')
|
|
52
|
+
temp_df['卖方保证金'] = pd.to_numeric(temp_df['卖方保证金'], errors='coerce')
|
|
53
|
+
temp_df['开仓手续费'] = pd.to_numeric(temp_df['开仓手续费'], errors='coerce')
|
|
54
|
+
temp_df['平今手续费'] = pd.to_numeric(temp_df['平今手续费'], errors='coerce')
|
|
55
|
+
temp_df['平昨手续费'] = pd.to_numeric(temp_df['平昨手续费'], errors='coerce')
|
|
56
|
+
temp_df['手续费(开+平今)'] = pd.to_numeric(temp_df['手续费(开+平今)'], errors='coerce')
|
|
57
|
+
return temp_df
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
if __name__ == '__main__':
|
|
61
|
+
option_margin_df = option_margin(symbol="原油期权")
|
|
62
|
+
print(option_margin_df)
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
# -*- coding:utf-8 -*-
|
|
2
2
|
# !/usr/bin/env python
|
|
3
3
|
"""
|
|
4
|
-
Date:
|
|
4
|
+
Date: 2025/3/11 17:00
|
|
5
5
|
Desc: 东方财富网-数据中心-特色数据-期权折溢价
|
|
6
6
|
https://data.eastmoney.com/other/premium.html
|
|
7
7
|
"""
|
|
8
|
-
|
|
8
|
+
|
|
9
9
|
import pandas as pd
|
|
10
10
|
|
|
11
|
+
from akshare.utils.func import fetch_paginated_data
|
|
12
|
+
|
|
11
13
|
|
|
12
14
|
def option_premium_analysis_em() -> pd.DataFrame:
|
|
13
15
|
"""
|
|
@@ -18,60 +20,63 @@ def option_premium_analysis_em() -> pd.DataFrame:
|
|
|
18
20
|
"""
|
|
19
21
|
url = "https://push2.eastmoney.com/api/qt/clist/get"
|
|
20
22
|
params = {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
23
|
+
"fid": "f250",
|
|
24
|
+
"po": "1",
|
|
25
|
+
"pz": "100",
|
|
26
|
+
"pn": "1",
|
|
27
|
+
"np": "1",
|
|
28
|
+
"fltt": "2",
|
|
29
|
+
"invt": "2",
|
|
30
|
+
"ut": "b2884a393a59ad64002292a3e90d46a5",
|
|
31
|
+
"fields": "f1,f2,f3,f12,f13,f14,f161,f250,f330,f331,f332,f333,f334,f335,f337,f301,f152",
|
|
32
|
+
"fs": "m:10",
|
|
31
33
|
}
|
|
32
|
-
|
|
33
|
-
data_json = r.json()
|
|
34
|
-
temp_df = pd.DataFrame(data_json["data"]["diff"])
|
|
34
|
+
temp_df = fetch_paginated_data(url, params)
|
|
35
35
|
temp_df.columns = [
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
36
|
+
"-",
|
|
37
|
+
"-",
|
|
38
|
+
"最新价",
|
|
39
|
+
"涨跌幅",
|
|
40
|
+
"期权代码",
|
|
41
|
+
"-",
|
|
42
|
+
"期权名称",
|
|
43
|
+
"-",
|
|
44
|
+
"行权价",
|
|
45
|
+
"折溢价率",
|
|
46
|
+
"到期日",
|
|
47
|
+
"-",
|
|
48
|
+
"-",
|
|
49
|
+
"-",
|
|
50
|
+
"标的名称",
|
|
51
|
+
"标的最新价",
|
|
52
|
+
"标的涨跌幅",
|
|
53
|
+
"盈亏平衡价",
|
|
54
|
+
]
|
|
55
|
+
temp_df = temp_df[
|
|
56
|
+
[
|
|
57
|
+
"期权代码",
|
|
58
|
+
"期权名称",
|
|
59
|
+
"最新价",
|
|
60
|
+
"涨跌幅",
|
|
61
|
+
"行权价",
|
|
62
|
+
"折溢价率",
|
|
63
|
+
"标的名称",
|
|
64
|
+
"标的最新价",
|
|
65
|
+
"标的涨跌幅",
|
|
66
|
+
"盈亏平衡价",
|
|
67
|
+
"到期日",
|
|
68
|
+
]
|
|
53
69
|
]
|
|
54
|
-
temp_df = temp_df[
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
'盈亏平衡价',
|
|
65
|
-
'到期日',
|
|
66
|
-
]]
|
|
67
|
-
temp_df['最新价'] = pd.to_numeric(temp_df['最新价'], errors="coerce")
|
|
68
|
-
temp_df['涨跌幅'] = pd.to_numeric(temp_df['涨跌幅'], errors="coerce")
|
|
69
|
-
temp_df['行权价'] = pd.to_numeric(temp_df['行权价'], errors="coerce")
|
|
70
|
-
temp_df['折溢价率'] = pd.to_numeric(temp_df['折溢价率'], errors="coerce")
|
|
71
|
-
temp_df['标的最新价'] = pd.to_numeric(temp_df['标的最新价'], errors="coerce")
|
|
72
|
-
temp_df['标的涨跌幅'] = pd.to_numeric(temp_df['标的涨跌幅'], errors="coerce")
|
|
73
|
-
temp_df['盈亏平衡价'] = pd.to_numeric(temp_df['盈亏平衡价'], errors="coerce")
|
|
74
|
-
temp_df['到期日'] = pd.to_datetime(temp_df['到期日'].astype(str)).dt.date
|
|
70
|
+
temp_df["最新价"] = pd.to_numeric(temp_df["最新价"], errors="coerce")
|
|
71
|
+
temp_df["涨跌幅"] = pd.to_numeric(temp_df["涨跌幅"], errors="coerce")
|
|
72
|
+
temp_df["行权价"] = pd.to_numeric(temp_df["行权价"], errors="coerce")
|
|
73
|
+
temp_df["折溢价率"] = pd.to_numeric(temp_df["折溢价率"], errors="coerce")
|
|
74
|
+
temp_df["标的最新价"] = pd.to_numeric(temp_df["标的最新价"], errors="coerce")
|
|
75
|
+
temp_df["标的涨跌幅"] = pd.to_numeric(temp_df["标的涨跌幅"], errors="coerce")
|
|
76
|
+
temp_df["盈亏平衡价"] = pd.to_numeric(temp_df["盈亏平衡价"], errors="coerce")
|
|
77
|
+
temp_df["到期日"] = pd.to_datetime(
|
|
78
|
+
temp_df["到期日"].astype(str), errors="coerce"
|
|
79
|
+
).dt.date
|
|
75
80
|
return temp_df
|
|
76
81
|
|
|
77
82
|
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
# -*- coding:utf-8 -*-
|
|
2
2
|
# !/usr/bin/env python
|
|
3
3
|
"""
|
|
4
|
-
Date:
|
|
4
|
+
Date: 2025/3/13 21:50
|
|
5
5
|
Desc: 东方财富网-数据中心-特色数据-期权风险分析
|
|
6
6
|
https://data.eastmoney.com/other/riskanal.html
|
|
7
7
|
"""
|
|
8
|
-
|
|
8
|
+
|
|
9
9
|
import pandas as pd
|
|
10
10
|
|
|
11
|
+
from akshare.utils.func import fetch_paginated_data
|
|
12
|
+
|
|
11
13
|
|
|
12
14
|
def option_risk_analysis_em() -> pd.DataFrame:
|
|
13
15
|
"""
|
|
@@ -18,9 +20,9 @@ def option_risk_analysis_em() -> pd.DataFrame:
|
|
|
18
20
|
"""
|
|
19
21
|
url = "https://push2.eastmoney.com/api/qt/clist/get"
|
|
20
22
|
params = {
|
|
21
|
-
"fid": "
|
|
23
|
+
"fid": "f12",
|
|
22
24
|
"po": "1",
|
|
23
|
-
"pz": "
|
|
25
|
+
"pz": "100",
|
|
24
26
|
"pn": "1",
|
|
25
27
|
"np": "1",
|
|
26
28
|
"fltt": "2",
|
|
@@ -29,10 +31,9 @@ def option_risk_analysis_em() -> pd.DataFrame:
|
|
|
29
31
|
"fields": "f1,f2,f3,f12,f13,f14,f302,f303,f325,f326,f327,f329,f328,f301,f152,f154",
|
|
30
32
|
"fs": "m:10",
|
|
31
33
|
}
|
|
32
|
-
|
|
33
|
-
data_json = r.json()
|
|
34
|
-
temp_df = pd.DataFrame(data_json["data"]["diff"])
|
|
34
|
+
temp_df = fetch_paginated_data(url, params)
|
|
35
35
|
temp_df.columns = [
|
|
36
|
+
"-",
|
|
36
37
|
"-",
|
|
37
38
|
"最新价",
|
|
38
39
|
"涨跌幅",
|
|
@@ -75,7 +76,9 @@ def option_risk_analysis_em() -> pd.DataFrame:
|
|
|
75
76
|
temp_df["Vega"] = pd.to_numeric(temp_df["Vega"], errors="coerce")
|
|
76
77
|
temp_df["Rho"] = pd.to_numeric(temp_df["Rho"], errors="coerce")
|
|
77
78
|
temp_df["Theta"] = pd.to_numeric(temp_df["Theta"], errors="coerce")
|
|
78
|
-
temp_df["到期日"] = pd.to_datetime(
|
|
79
|
+
temp_df["到期日"] = pd.to_datetime(
|
|
80
|
+
temp_df["到期日"], format="%Y%m%d", errors="coerce"
|
|
81
|
+
).dt.date
|
|
79
82
|
return temp_df
|
|
80
83
|
|
|
81
84
|
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
# -*- coding:utf-8 -*-
|
|
2
2
|
# !/usr/bin/env python
|
|
3
3
|
"""
|
|
4
|
-
Date:
|
|
4
|
+
Date: 2025/9/8 16:20
|
|
5
5
|
Desc: 上海证券交易所-产品-股票期权-期权风险指标
|
|
6
6
|
"""
|
|
7
7
|
|
|
8
|
-
import requests
|
|
9
8
|
import pandas as pd
|
|
9
|
+
import requests
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
def option_risk_indicator_sse(date: str = "20240626") -> pd.DataFrame:
|
|
@@ -24,7 +24,6 @@ def option_risk_indicator_sse(date: str = "20240626") -> pd.DataFrame:
|
|
|
24
24
|
"trade_date": date,
|
|
25
25
|
"sqlId": "SSE_ZQPZ_YSP_GGQQZSXT_YSHQ_QQFXZB_DATE_L",
|
|
26
26
|
"contractSymbol": "",
|
|
27
|
-
"_": "1652877575590",
|
|
28
27
|
}
|
|
29
28
|
headers = {
|
|
30
29
|
"Accept": "*/*",
|
|
@@ -36,7 +35,7 @@ def option_risk_indicator_sse(date: str = "20240626") -> pd.DataFrame:
|
|
|
36
35
|
"Pragma": "no-cache",
|
|
37
36
|
"Referer": "http://www.sse.com.cn/",
|
|
38
37
|
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
|
|
39
|
-
|
|
38
|
+
"Chrome/101.0.4951.67 Safari/537.36",
|
|
40
39
|
}
|
|
41
40
|
r = requests.get(url, params=params, headers=headers)
|
|
42
41
|
data_json = r.json()
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
# -*- coding:utf-8 -*-
|
|
2
2
|
# !/usr/bin/env python
|
|
3
3
|
"""
|
|
4
|
-
Date:
|
|
4
|
+
Date: 2025/3/11 17:00
|
|
5
5
|
Desc: 东方财富网-数据中心-特色数据-期权价值分析
|
|
6
6
|
https://data.eastmoney.com/other/valueAnal.html
|
|
7
7
|
"""
|
|
8
|
-
|
|
8
|
+
|
|
9
9
|
import pandas as pd
|
|
10
10
|
|
|
11
|
+
from akshare.utils.func import fetch_paginated_data
|
|
12
|
+
|
|
11
13
|
|
|
12
14
|
def option_value_analysis_em() -> pd.DataFrame:
|
|
13
15
|
"""
|
|
@@ -18,62 +20,67 @@ def option_value_analysis_em() -> pd.DataFrame:
|
|
|
18
20
|
"""
|
|
19
21
|
url = "https://push2.eastmoney.com/api/qt/clist/get"
|
|
20
22
|
params = {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
23
|
+
"fid": "f301",
|
|
24
|
+
"po": "1",
|
|
25
|
+
"pz": "100",
|
|
26
|
+
"pn": "1",
|
|
27
|
+
"np": "1",
|
|
28
|
+
"fltt": "2",
|
|
29
|
+
"invt": "2",
|
|
30
|
+
"ut": "b2884a393a59ad64002292a3e90d46a5",
|
|
31
|
+
"fields": "f1,f2,f3,f12,f13,f14,f298,f299,f249,f300,f330,f331,f332,f333,f334,f335,f336,f301,f152",
|
|
32
|
+
"fs": "m:10",
|
|
31
33
|
}
|
|
32
|
-
|
|
33
|
-
data_json = r.json()
|
|
34
|
-
temp_df = pd.DataFrame(data_json["data"]["diff"])
|
|
34
|
+
temp_df = fetch_paginated_data(url, params)
|
|
35
35
|
temp_df.columns = [
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
36
|
+
"-",
|
|
37
|
+
"-",
|
|
38
|
+
"最新价",
|
|
39
|
+
"-",
|
|
40
|
+
"期权代码",
|
|
41
|
+
"-",
|
|
42
|
+
"期权名称",
|
|
43
|
+
"-",
|
|
44
|
+
"隐含波动率",
|
|
45
|
+
"时间价值",
|
|
46
|
+
"内在价值",
|
|
47
|
+
"理论价格",
|
|
48
|
+
"到期日",
|
|
49
|
+
"-",
|
|
50
|
+
"-",
|
|
51
|
+
"-",
|
|
52
|
+
"标的名称",
|
|
53
|
+
"标的最新价",
|
|
54
|
+
"-",
|
|
55
|
+
"标的近一年波动率",
|
|
56
|
+
]
|
|
57
|
+
temp_df = temp_df[
|
|
58
|
+
[
|
|
59
|
+
"期权代码",
|
|
60
|
+
"期权名称",
|
|
61
|
+
"最新价",
|
|
62
|
+
"时间价值",
|
|
63
|
+
"内在价值",
|
|
64
|
+
"隐含波动率",
|
|
65
|
+
"理论价格",
|
|
66
|
+
"标的名称",
|
|
67
|
+
"标的最新价",
|
|
68
|
+
"标的近一年波动率",
|
|
69
|
+
"到期日",
|
|
70
|
+
]
|
|
55
71
|
]
|
|
56
|
-
temp_df = temp_df[
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
]]
|
|
69
|
-
temp_df['最新价'] = pd.to_numeric(temp_df['最新价'], errors="coerce")
|
|
70
|
-
temp_df['时间价值'] = pd.to_numeric(temp_df['时间价值'])
|
|
71
|
-
temp_df['内在价值'] = pd.to_numeric(temp_df['内在价值'])
|
|
72
|
-
temp_df['隐含波动率'] = pd.to_numeric(temp_df['隐含波动率'])
|
|
73
|
-
temp_df['理论价格'] = pd.to_numeric(temp_df['理论价格'], errors="coerce")
|
|
74
|
-
temp_df['标的最新价'] = pd.to_numeric(temp_df['标的最新价'])
|
|
75
|
-
temp_df['标的近一年波动率'] = pd.to_numeric(temp_df['标的近一年波动率'])
|
|
76
|
-
temp_df['到期日'] = pd.to_datetime(temp_df['到期日'].astype(str)).dt.date
|
|
72
|
+
temp_df["最新价"] = pd.to_numeric(temp_df["最新价"], errors="coerce")
|
|
73
|
+
temp_df["时间价值"] = pd.to_numeric(temp_df["时间价值"], errors="coerce")
|
|
74
|
+
temp_df["内在价值"] = pd.to_numeric(temp_df["内在价值"], errors="coerce")
|
|
75
|
+
temp_df["隐含波动率"] = pd.to_numeric(temp_df["隐含波动率"], errors="coerce")
|
|
76
|
+
temp_df["理论价格"] = pd.to_numeric(temp_df["理论价格"], errors="coerce")
|
|
77
|
+
temp_df["标的最新价"] = pd.to_numeric(temp_df["标的最新价"], errors="coerce")
|
|
78
|
+
temp_df["标的近一年波动率"] = pd.to_numeric(
|
|
79
|
+
temp_df["标的近一年波动率"], errors="coerce"
|
|
80
|
+
)
|
|
81
|
+
temp_df["到期日"] = pd.to_datetime(
|
|
82
|
+
temp_df["到期日"].astype(str), errors="coerce"
|
|
83
|
+
).dt.date
|
|
77
84
|
return temp_df
|
|
78
85
|
|
|
79
86
|
|
akshare/other/__init__.py
CHANGED
akshare/pro/__init__.py
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
|
akshare/pro/client.py
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
Date: 2019/11/10 22:52
|
|
5
5
|
Desc: 数据接口源代码
|
|
6
6
|
"""
|
|
7
|
+
|
|
7
8
|
from functools import partial
|
|
8
9
|
from urllib import parse
|
|
9
10
|
|
|
@@ -12,7 +13,6 @@ import requests
|
|
|
12
13
|
|
|
13
14
|
|
|
14
15
|
class DataApi:
|
|
15
|
-
|
|
16
16
|
__token = ""
|
|
17
17
|
__http_url = "https://api.qhkch.com"
|
|
18
18
|
|
|
@@ -49,8 +49,10 @@ class DataApi:
|
|
|
49
49
|
if fields == "":
|
|
50
50
|
try:
|
|
51
51
|
return pd.DataFrame(data_json)
|
|
52
|
-
except ValueError
|
|
53
|
-
result_df = pd.DataFrame.from_dict(
|
|
52
|
+
except ValueError:
|
|
53
|
+
result_df = pd.DataFrame.from_dict(
|
|
54
|
+
data_json, orient="index", columns=[api_name]
|
|
55
|
+
)
|
|
54
56
|
return result_df
|
|
55
57
|
else: # 此处增加处理
|
|
56
58
|
if api_name == "variety_all_positions":
|
|
@@ -68,5 +70,5 @@ class DataApi:
|
|
|
68
70
|
return partial(self.query, name)
|
|
69
71
|
|
|
70
72
|
|
|
71
|
-
if __name__ ==
|
|
73
|
+
if __name__ == "__main__":
|
|
72
74
|
pass
|
akshare/pro/cons.py
CHANGED
akshare/pro/data_pro.py
CHANGED
|
@@ -4,24 +4,25 @@
|
|
|
4
4
|
Date: 2019/11/10 22:52
|
|
5
5
|
Desc: 数据接口初始化
|
|
6
6
|
"""
|
|
7
|
+
|
|
7
8
|
from akshare.pro import client
|
|
8
9
|
from akshare.utils import token_process
|
|
9
10
|
|
|
10
11
|
|
|
11
|
-
def pro_api(token=
|
|
12
|
+
def pro_api(token=""):
|
|
12
13
|
"""
|
|
13
14
|
初始化 pro API,第一次可以通过ak.set_token('your token')来记录自己的token凭证,临时token可以通过本参数传入
|
|
14
15
|
"""
|
|
15
|
-
if token ==
|
|
16
|
+
if token == "" or token is None:
|
|
16
17
|
token = token_process.get_token()
|
|
17
|
-
if token is not None and token !=
|
|
18
|
+
if token is not None and token != "":
|
|
18
19
|
pro = client.DataApi(token)
|
|
19
20
|
return pro
|
|
20
21
|
else:
|
|
21
|
-
raise Exception(
|
|
22
|
+
raise Exception("api init error.")
|
|
22
23
|
|
|
23
24
|
|
|
24
|
-
if __name__ ==
|
|
25
|
+
if __name__ == "__main__":
|
|
25
26
|
pro_test = pro_api()
|
|
26
27
|
variety_all_df = pro_test.variety_all()
|
|
27
28
|
print(variety_all_df)
|
akshare/qdii/__init__.py
ADDED
|
File without changes
|