There is python package efinance can obtain stock data.
I add @multitasking.task before self function def get_snap_data() to accerelate it , print(snap_df_total) show well , but total_final = get_snap_data(snap_st_list) can't work (total_final is empty at the end).Anyone can help ?
(if i delete line @multitasking.task ,it's working well ,but very slow)
import pandas as pd
import numpy as np
import efinance as ef
import multitasking
import signal
signal.signal(signal.SIGINT, multitasking.killall)
snap_df_total = pd.DataFrame()
snap_st_list =ef.stock.get_realtime_quotes()['股票代码'].head(5)
@multitasking.task
def get_snap_data(snap_st_list):
snap_df_total = pd.DataFrame()
for single_st in snap_st_list:
snap_ser = ef.stock.get_quote_snapshot(single_st)
snap_temp = pd.DataFrame(snap_ser).T
snap_df_total = pd.concat([snap_df_total,snap_temp],axis = 0)
print(snap_df_total)
return snap_df_total
total_final = get_snap_data(snap_st_list)