superxu520 commited on
Commit
c6a3487
·
1 Parent(s): c83976a

fix_syntax_error

Browse files
Files changed (1) hide show
  1. sync_data.py +41 -32
sync_data.py CHANGED
@@ -38,6 +38,7 @@ def get_stock_list() -> pd.DataFrame:
38
  logger.info("Fetching all-market target list...")
39
  all_lists = []
40
 
 
41
  max_retries = 3
42
  for attempt in range(max_retries):
43
  try:
@@ -45,6 +46,7 @@ def get_stock_list() -> pd.DataFrame:
45
  df_a.columns = ['code', 'name']
46
  df_a['market'] = df_a['code'].apply(lambda x: '主板' if x.startswith(('60', '00')) else ('创业板' if x.startswith('30') else ('科创板' if x.startswith('68') else ('北交所' if x.startswith(('8', '4', '920')) else '其他'))))
47
  all_lists.append(df_a)
 
48
  break # 成功则退出重试循环
49
  except Exception as e:
50
  if attempt == max_retries - 1:
@@ -52,42 +54,49 @@ def get_stock_list() -> pd.DataFrame:
52
  else:
53
  logger.warning(f"Attempt {attempt + 1} failed, retrying... Error: {e}")
54
  time.sleep(5) # 重试前等待 5 秒
55
-
56
- # ETF / LOF / REITs (增加容错)
57
- try:
58
- df_etf = ak.fund_etf_spot_em()[['代码', '名称']]
59
- df_etf.columns = ['code', 'name']
60
- df_etf['market'] = 'ETF'
61
- all_lists.append(df_etf)
62
- except Exception as e:
63
- logger.warning(f"ETF list fetch failed: {e}")
64
 
65
- try:
66
- df_lof = ak.fund_lof_spot_em()[['代码', '名称']]
67
- df_lof.columns = ['code', 'name']
68
- df_lof['market'] = 'LOF'
69
- all_lists.append(df_lof)
70
- except Exception as e:
71
- logger.warning(f"LOF list fetch failed: {e}")
 
 
72
 
73
- try:
74
- df_reits = ak.reits_realtime_em()[['代码', '名称']]
75
- df_reits.columns = ['code', 'name']
76
- df_reits['market'] = 'REITs'
77
- all_lists.append(df_reits)
78
- except Exception as e:
79
- logger.warning(f"REITs list fetch failed: {e}")
80
-
81
- try:
82
- df_cb = ak.bond_zh_hs_cov_spot()
83
- c_code = '代码' if '代码' in df_cb.columns else 'symbol'
84
- c_name = '名称' if '名称' in df_cb.columns else 'name'
85
- df_cb = df_cb[[c_code, c_name]]; df_cb.columns = ['code', 'name']; df_cb['market'] = '可转债'; all_lists.append(df_cb)
86
- except Exception as e:
87
- logger.warning(f"Convertible bond list fetch failed: {e}")
88
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
89
  except Exception as e:
90
- logger.error(f"List fetching error: {e}")
91
 
92
  if not all_lists:
93
  db = get_db()
 
38
  logger.info("Fetching all-market target list...")
39
  all_lists = []
40
 
41
+ # A股列表获取(带重试)
42
  max_retries = 3
43
  for attempt in range(max_retries):
44
  try:
 
46
  df_a.columns = ['code', 'name']
47
  df_a['market'] = df_a['code'].apply(lambda x: '主板' if x.startswith(('60', '00')) else ('创业板' if x.startswith('30') else ('科创板' if x.startswith('68') else ('北交所' if x.startswith(('8', '4', '920')) else '其他'))))
48
  all_lists.append(df_a)
49
+ logger.info(f"A-stock list fetched: {len(df_a)} stocks")
50
  break # 成功则退出重试循环
51
  except Exception as e:
52
  if attempt == max_retries - 1:
 
54
  else:
55
  logger.warning(f"Attempt {attempt + 1} failed, retrying... Error: {e}")
56
  time.sleep(5) # 重试前等待 5 秒
 
 
 
 
 
 
 
 
 
57
 
58
+ # ETF (增加容错)
59
+ try:
60
+ df_etf = ak.fund_etf_spot_em()[['代码', '名称']]
61
+ df_etf.columns = ['code', 'name']
62
+ df_etf['market'] = 'ETF'
63
+ all_lists.append(df_etf)
64
+ logger.info(f"ETF list fetched: {len(df_etf)} funds")
65
+ except Exception as e:
66
+ logger.warning(f"ETF list fetch failed: {e}")
67
 
68
+ # LOF
69
+ try:
70
+ df_lof = ak.fund_lof_spot_em()[['代码', '名称']]
71
+ df_lof.columns = ['code', 'name']
72
+ df_lof['market'] = 'LOF'
73
+ all_lists.append(df_lof)
74
+ logger.info(f"LOF list fetched: {len(df_lof)} funds")
75
+ except Exception as e:
76
+ logger.warning(f"LOF list fetch failed: {e}")
 
 
 
 
 
 
77
 
78
+ # REITs
79
+ try:
80
+ df_reits = ak.reits_realtime_em()[['代码', '名称']]
81
+ df_reits.columns = ['code', 'name']
82
+ df_reits['market'] = 'REITs'
83
+ all_lists.append(df_reits)
84
+ logger.info(f"REITs list fetched: {len(df_reits)} products")
85
+ except Exception as e:
86
+ logger.warning(f"REITs list fetch failed: {e}")
87
+
88
+ # 可转债
89
+ try:
90
+ df_cb = ak.bond_zh_hs_cov_spot()
91
+ c_code = '代码' if '代码' in df_cb.columns else 'symbol'
92
+ c_name = '名称' if '名称' in df_cb.columns else 'name'
93
+ df_cb = df_cb[[c_code, c_name]]
94
+ df_cb.columns = ['code', 'name']
95
+ df_cb['market'] = '可转债'
96
+ all_lists.append(df_cb)
97
+ logger.info(f"Convertible bond list fetched: {len(df_cb)} bonds")
98
  except Exception as e:
99
+ logger.warning(f"Convertible bond list fetch failed: {e}")
100
 
101
  if not all_lists:
102
  db = get_db()