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')