import
pandas as pd
import
requests
from
datetime
import
datetime
import
time
import
numpy as np
def
stock_zh_a_spot_em()
-
> pd.DataFrame:
url
=
"http://82.push2.eastmoney.com/api/qt/clist/get"
params
=
{
"pn"
:
"1"
,
"pz"
:
"50000"
,
"po"
:
"1"
,
"np"
:
"1"
,
"ut"
:
"bd1d9ddb04089700cf9c27f6f7426281"
,
"fltt"
:
"2"
,
"invt"
:
"2"
,
"fid"
:
"f3"
,
"fs"
:
"m:0 t:6,m:0 t:80,m:1 t:2,m:1 t:23,m:0 t:81 s:2048"
,
"fields"
:
"f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f12,f13,f14,f15,f16,f17,f18,f20,f21,f23,f24,f25,f22,f11,f62,f128,f136,f115,f152"
,
"_"
:
"1623833739532"
,
}
r
=
requests.get(url, params
=
params)
data_json
=
r.json()
if
not
data_json[
"data"
][
"diff"
]:
return
pd.DataFrame()
temp_df
=
pd.DataFrame(data_json[
"data"
][
"diff"
])
temp_df.columns
=
[
"_"
,
"最新价"
,
"涨跌幅"
,
"涨跌额"
,
"成交量"
,
"成交额"
,
"振幅"
,
"换手率"
,
"市盈率-动态"
,
"量比"
,
"5分钟涨跌"
,
"代码"
,
"_"
,
"名称"
,
"最高"
,
"最低"
,
"今开"
,
"昨收"
,
"总市值"
,
"流通市值"
,
"涨速"
,
"市净率"
,
"60日涨跌幅"
,
"年初至今涨跌幅"
,
"-"
,
"-"
,
"-"
,
"-"
,
"-"
,
"-"
,
"-"
,
]
temp_df.reset_index(inplace
=
True
)
temp_df[
"index"
]
=
temp_df.index
+
1
temp_df.rename(columns
=
{
"index"
:
"序号"
}, inplace
=
True
)
temp_df
=
temp_df[
[
"序号"
,
"代码"
,
"名称"
,
"最新价"
,
"涨跌幅"
,
"涨跌额"
,
"成交量"
,
"成交额"
,
"振幅"
,
"最高"
,
"最低"
,
"今开"
,
"昨收"
,
"量比"
,
"换手率"
,
"市盈率-动态"
,
"市净率"
,
"总市值"
,
"流通市值"
,
"涨速"
,
"5分钟涨跌"
,
"60日涨跌幅"
,
"年初至今涨跌幅"
,
]
]
temp_df[
"最新价"
]
=
pd.to_numeric(temp_df[
"最新价"
], errors
=
"coerce"
)
temp_df[
"涨跌幅"
]
=
pd.to_numeric(temp_df[
"涨跌幅"
], errors
=
"coerce"
)
temp_df[
"涨跌额"
]
=
pd.to_numeric(temp_df[
"涨跌额"
], errors
=
"coerce"
)
temp_df[
"成交量"
]
=
pd.to_numeric(temp_df[
"成交量"
], errors
=
"coerce"
)
temp_df[
"成交额"
]
=
pd.to_numeric(temp_df[
"成交额"
], errors
=
"coerce"
)
temp_df[
"振幅"
]
=
pd.to_numeric(temp_df[
"振幅"
], errors
=
"coerce"
)
temp_df[
"最高"
]
=
pd.to_numeric(temp_df[
"最高"
], errors
=
"coerce"
)
temp_df[
"最低"
]
=
pd.to_numeric(temp_df[
"最低"
], errors
=
"coerce"
)
temp_df[
"今开"
]
=
pd.to_numeric(temp_df[
"今开"
], errors
=
"coerce"
)
temp_df[
"昨收"
]
=
pd.to_numeric(temp_df[
"昨收"
], errors
=
"coerce"
)
temp_df[
"量比"
]
=
pd.to_numeric(temp_df[
"量比"
], errors
=
"coerce"
)
temp_df[
"换手率"
]
=
pd.to_numeric(temp_df[
"换手率"
], errors
=
"coerce"
)
temp_df[
"市盈率-动态"
]
=
pd.to_numeric(temp_df[
"市盈率-动态"
], errors
=
"coerce"
)
temp_df[
"市净率"
]
=
pd.to_numeric(temp_df[
"市净率"
], errors
=
"coerce"
)
temp_df[
"总市值"
]
=
pd.to_numeric(temp_df[
"总市值"
], errors
=
"coerce"
)
temp_df[
"流通市值"
]
=
pd.to_numeric(temp_df[
"流通市值"
], errors
=
"coerce"
)
temp_df[
"涨速"
]
=
pd.to_numeric(temp_df[
"涨速"
], errors
=
"coerce"
)
temp_df[
"5分钟涨跌"
]
=
pd.to_numeric(temp_df[
"5分钟涨跌"
], errors
=
"coerce"
)
temp_df[
"60日涨跌幅"
]
=
pd.to_numeric(temp_df[
"60日涨跌幅"
], errors
=
"coerce"
)
temp_df[
"年初至今涨跌幅"
]
=
pd.to_numeric(temp_df[
"年初至今涨跌幅"
], errors
=
"coerce"
)
return
temp_df
def
update_array(arr, value):
arr[:
-
1
]
=
arr[
1
:]
arr[
-
1
]
=
value
return
arr
df
=
stock_zh_a_spot_em()
yest_price
=
dict
(
zip
(df[
'代码'
], df[
'昨收'
]))
print
(df)
label
=
str
(
int
(time.time()))
df.to_excel(f
'data01-{label}.xlsx'
,index
=
False
)