Wind可能会对接口提取的数据量设限制,因此频繁提取大量数据有超限的风险。
因此我们可以采取的方法是,先将第一次提取的同业存单原始数据,在电脑中存为Excel文件,下次直接从电脑的Excel文件中读取数据。然后我们只需要对更新的同业存单,提取数据就可以。代码如下:
data.to_excel('D:/data_cd.xlsx', sheet_name='Sheet1')
# 将数据输出为EXCEL格式文件
data = pd.read_excel('D:/data_cd.xlsx', sheet_name='Sheet1', index_col='maturitydate')
c1 = list(data['windcode'].values) 
# Excel里面读的数
w.start()
code = w.wset("sectorconstituent","sectorid=1000016456000000")
c2 = code.Data[1]
# Wind中取的值
if len(c1)  == len(c2):
  print("不需要更新数据")
else:
  diff = [i for i in c2 if not(i in c1) ] 
  # 取出不同的值
  code1 = ','.join(diff)  
      datanew = w.wss(code1, "windcode,fullname,issueamount,carrydate,maturitydate,term,couponrate,issuer_banktype", "unit=1")
  
  dt1 = pd.DataFrame(datanew.Data).T # 转换成DataFrame格式
  dt1.columns = ['windcode', 'fullname', 'issuemount', 'carrydate', 'maturitydate', 'term', 'couponrate', 'issuer_banktype']
  dt1= dt1.set_index('maturitydate')
  data = pd.concat([data, dt1]) #合并数据
w.close()
data.to_excel('D:/data_cd.xlsx', sheet_name='Sheet1')