一、代码
#使用pip install pandas
#使用pip install requests
#行业业绩轮动公众号首发
import pandas as pd
import json
import requests
def get_all_etf_data():
'''
获取全部的etf数据
'''
params={
'type': 'RPTA_APP_FUNDSELECT',
'sty': 'ETF_TYPE_CODE,SECUCODE,SECURITY_CODE,CHANGE_RATE_1W,CHANGE_RATE_1M,CHANGE_RATE_3M,YTD_CHANGE_RATE,DEC_TOTALSHARE,DEC_NAV,SECURITY_NAME_ABBR,DERIVE_INDEX_CODE,INDEX_CODE,INDEX_NAME,NEW_PRICE,CHANGE_RATE,CHANGE,VOLUME,DEAL_AMOUNT,PREMIUM_DISCOUNT_RATIO,QUANTITY_RELATIVE_RATIO,HIGH_PRICE,LOW_PRICE,STOCK_ID,PRE_CLOSE_PRICE',
'extraCols':'' ,
'source': 'FUND_SELECTOR',
'client': 'APP',
'sr': '-1,-1,1',
'st': 'CHANGE_RATE,CHANGE,SECURITY_CODE',
'filter': '(ETF_TYPE_CODE="ALL")',
'extraCols': '',
'p': '1',
'ps':2000,
'isIndexFilter': '1'
}
url='https://datacenter.eastmoney.com/stock/fundselector/api/data/get?'
res=requests.get(url=url,params=params)
text=res.json()
df=pd.DataFrame(text['result']['data'])
columns=['_','_','基金代码','周涨跌幅','月涨跌幅','3月涨跌幅','年涨跌幅','市值','现在市值',
'基金名称','_','_','主题',"价格",'涨跌幅','涨跌额','成交量','成交额','折价率','_',
"最高价",'最低价','_','前收盘价']
df.columns=columns
df['折价率']=df['折价率'].replace('-',0)
df['折价率']=pd.to_numeric(df['折价率'])
df['折价率']=df['折价率'].astype(float)
df['溢价率']=0-df['折价率']
del df['_']
'''
df['实时参考净值']=df['最新价']*(1+df['折价率'])
df['实时参考涨跌幅']=df['涨跌幅']*(1+df['折价率'])
df['实时参考净值']=df['实时参考净值'].apply(lambda x:round(x,4))
df['实时参考涨跌幅']=df['实时参考涨跌幅'].apply(lambda x:round(x,2))
'''
return df
df = get_all_etf_data()
print(df)
df.to_excel("数据.xlsx")
二、运行结果
三、导出的excel: 查看运行后的excel文件