
    fiu                     l   d Z ddlZddlmZ ddlmZmZ ddlZddl	Z	dde
defdZ e            defd	            Z e            deeeeef         fd
            Zdej        fdZ	 	 	 	 dde
de
de
de
dej        f
dZedk    r/ e            Z ee            edd          Z ee           dS dS )u\   
Date: 2024/2/20 17:00
Desc: 东方财富网-期货行情
https://qhweb.eastmoney.com/quote
    N)	lru_cache)TupleDict
   焦煤2506symbolreturnc                 z    t          j        d|           }t          j        d|           }|d         |d         fS )u  
    东方财富网-期货行情-交易所品种对照表原始数据
    https://quote.eastmoney.com/qihuo/al2505.html
    :param symbol: 股票代码
    :type symbol: str
    :return: 交易所品种对照表原始数据
    :rtype: pandas.DataFrame
    u   [一-龥a-zA-Z]+patternstringz\d+r   )refindall)r   charnumberss      J/usr/local/lib/python3.11/dist-packages/akshare/futures/futures_hist_em.py+__futures_hist_separate_char_and_numbers_emr      s@     :6vFFFDj777G7GAJ    c                     d} ddi}t          j        | |          }|                                }g }|D ]}dt          |d                   i}t          j        | |          }|                                }t	          dt          |          dz             D ]^}dt          |d                   d| z   i}t          j        | |          }|                                }|                    |           _|S )u   
    东方财富网-期货行情-交易所品种对照表原始数据
    https://quote.eastmoney.com/qihuo/al2505.html
    :return: 交易所品种对照表原始数据
    :rtype: pandas.DataFrame
    z)https://futsse-static.eastmoney.com/redismsgidgnweb)paramsmktid   _)requestsgetjsonstrrangelenextend)urlr   r	data_jsonall_exchange_symbol_listiteminner_data_jsonnums           r   __fetch_exchange_symbol_raw_emr)      s    6CwFS(((AI! = =3tG}--.LV,,,&&((C001455 	= 	=Cs4=11III=>FS000AffhhO$++O<<<<		=
 $#r   c                      t                      } i }i }i }i }| D ]F}|d         ||d         <   |d         ||d         <   |d         ||d         <   |d         ||d         <   G||||fS )u   
    东方财富网-期货行情-交易所品种映射
    https://quote.eastmoney.com/qihuo/al2505.html
    :return: 交易所品种映射
    :rtype: pandas.DataFrame
    r   namecodevcodevname)r)   )r%   c_contract_mktc_contract_to_e_contracte_symbol_mktc_symbol_mktr&   s         r   __get_exchange_symbol_mapr3   8   s      >??N!LL( 4 4'+G}tF|$15f f.&*7mT']#&*7mT']##3\<OOr   c                  p    t                      } t          j        |           }|g d         }g d|_        |S )u   
    东方财富网-期货行情-交易所品种对照表
    https://quote.eastmoney.com/qihuo/al2505.html
    :return: 交易所品种对照表
    :rtype: pandas.DataFrame
    )mktnamer+   r,   )u   市场简称u   合约中文代码u   合约代码)r)   pd	DataFramecolumns)r%   temp_dfs     r   futures_hist_table_emr:   M   sC      >??l344G1112GLLLGONr      热卷主连daily1990010120500101period
start_dateend_datec                 L   d}dddd}t                      \  }}}}		 ||           d||           }
no# t          $ rb t          |           \  }}t          j        d|          rt          |	|                   dz   | z   }
nt          ||                   dz   | z   }
Y nw xY w|
||         d	d
dd	dddd	d
}t          j        |d|          }|                                }t          j
        d |d         d         D                       }|j        r|S g d|_        |g d         }t          j        |d                   |_        |||         }|                    dd           t          j        |d         d          |d<   t          j        |d         d          |d<   t          j        |d         d          |d<   t          j        |d         d          |d<   t          j        |d          d          |d <   t          j        |d!         d          |d!<   t          j        |d"         d          |d"<   t          j        |d#         d          |d#<   t          j        |d$         d          |d$<   t          j        |d         d          j        j        |d<   |S )%u  
    东方财富网-期货行情-行情数据
    https://qhweb.eastmoney.com/quote
    :param symbol: 期货代码
    :type symbol: str
    :param period: choice of {'daily', 'weekly', 'monthly'}
    :type period: str
    :param start_date: 开始日期
    :type start_date: str
    :param end_date: 结束日期
    :type end_date: str
    :return: 行情数据
    :rtype: pandas.DataFrame
    z5https://push2his.eastmoney.com/api/qt/stock/kline/get101102103)r<   weeklymonthly.u   ^[一-龥]+$r
   11000020500000zf1,f2,f3,f4,f5,f6,f7,f8z7f51,f52,f53,f54,f55,f56,f57,f58,f59,f60,f61,f62,f63,f64 7eea3edcaed734bea9cbfc24409ed989)
secidkltfqtlmtendisccafields1fields2utforcect   )timeoutr   c                 8    g | ]}|                     d           S ),)split).0r&   s     r   
<listcomp>z#futures_hist_em.<locals>.<listcomp>   s"    TTTDJJsOOTTTr   dataklines)   时间   开盘   收盘   最高   最低	   成交量	   成交额-	   涨跌幅   涨跌r   r   	   持仓量r   )
r`   ra   rc   rd   rb   ri   rh   re   rf   rj   r`   T)dropinplacera   coerce)errorsrb   rc   rd   re   rf   ri   rh   rj   )r3   KeyErrorr   r   matchr   r   r   r   r6   r7   emptyr8   to_datetimeindexreset_index
to_numericdtdate)r   r?   r@   rA   r"   period_dictr/   r0   r1   r2   sec_idsymbol_charr   r   r#   r$   r9   s                    r   futures_hist_emr{   [   s   ( BC!UuEEK!## IN,lLC"6*OO-Ef-MOO C C CJ6RRW80EEE 	Ck233c9FBFFk233c9FBFC 6",L0 F 	S"V444AIlTT	&8I(8STTTUUG}   GO  	
 	
 	
G N78#455GMj)*GT4000gh&7IIIGHgh&7IIIGHgh&7IIIGHgh&7IIIGH=)=hOOOGK=)=hOOOGKgh&7IIIGH=)=hOOOGK=)=hOOOGKwx'8JJJMRGHNs   1 A)BB__main__)r   r?   )r   )r;   r<   r=   r>   )__doc__r   	functoolsr   typingr   r   pandasr6   r   r   tupler   listr)   r3   r7   r:   r{   __name__futures_hist_table_em_dfprintfutures_hist_em_df r   r   <module>r      s    
			                     u     $ $ $ $ $0 P5tT4)?#@ P P P P(r|     ! 	] ]]] ] 	]
 \] ] ] ]@ z4466	E
"###(wOOO	E
 r   