windpy接口提取
python2.7环境
很多语法不一样,写的莫名其妙的
api接口单天查询上线量未知
#!/usr/bin/python
# coding=utf8
import os
import xlrd # 导入库
import openpyxl
import xlwt
import xlsxwriter
from WindPy import w
import datetime
import sys
reload(sys)
sys.setdefaultencoding('utf8')
# 定义一个函数,函数名字为get_all_excel,需要传入一个目录
def get_all_excel(dir): #遍历文件夹中的所有excel 传入一个文件夹路径
for root_dir, sub_dir, files in os.walk(r'' + dir) :
# 对文件列表中的每一个文件进行处理,如果文件名字是以‘xlxs’结尾就
# 认定为是一个excel文件,当然这里还可以用其他手段判断,比如你的excel
# 文件名中均包含‘res’,那么if条件可以改写为
for file in files:
# if file.endswith('.xlsx') and 'res' in file:
if file.endswith('.xlsx') :
# 此处因为要获取文件路径,比如要把D:/myExcel 和res.xlsx拼接为
# D:/myExcel/res.xlsx,因此中间需要添加/。python提供了专门的
# 方法
file_name = os.path.join(root_dir, file)
# 把拼接好的文件目录信息添加到列表中
file_list.append(file_name)
# print str(file_list).decode("string_escape")
print file_list
return file_list
def open_xlsx(file_listpath):
for xlsx_workname in file_listpath : #遍历所有excel名字
if "~$" not in xlsx_workname:
xlsx =openpyxl.load_workbook(xlsx_workname) #打开xlsx文件
xlsx_sheets = xlsx.sheetnames
print("正在读取文件%s"%xlsx_workname )
for xlsl_worksheet in range (len(xlsx_sheets)):
sheet_used = xlsx[xlsx_sheets[xlsl_worksheet]]
sheet_name = sheet_used.title # 获得名称
# sheet_cols = sheet_used.max_column # 获得列数
sheet_nrows = sheet_used.max_row # 获得行数
# sheet_num = xlsl_worksheet + 1
if "记录" not in sheet_name and "目录" not in sheet_name and "入库" not in sheet_name and "指标" not in sheet_name : #不读取目录和记录
print("开始扫描工作表%s" %sheet_name)
for xlsx_workrow in range(0, sheet_nrows):
col1 = sheet_used.cell(row=xlsx_workrow+1 , column=1).value # 查看第xlsx_workrow行第1列数据
if col1 is not None and len(str(col1)) == 8 : #wind标准代码为8位
winddm_list.append(str(col1))
print("工作表%s扫描结束" %sheet_name)
return winddm_list
def edb_query():
w.start() #不知道有啥用
print winddm_list
print len(winddm_list)
if len(winddm_list)>100: #超出长度截取
querydm_list = winddm_list[1000:1020]
# wdresult = w.edb(winddm_list,"2021-01-01", "2022-03-28") #"Fill=Previous"为上期,不传为空
wdresult = w.edb(querydm_list, "2019-01-27", "2021-03-28")
if wdresult.ErrorCode != 0:
print ("查询出错,报错信息%s"%wdresult.Data)
if wdresult.ErrorCode == 0:
print wdresult
Codes_list = wdresult.Codes
Times_list = wdresult.Times
Data_list = wdresult.Data
else:
print ("未知的错误发生了")
if wdresult.ErrorCode == 0:
Tabel=xlsxwriter.Workbook(u'提取结果.xlsx', {'nan_inf_to_errors': True})#创建一个excel文件
sheet1=Tabel.add_worksheet()#在该excel文件中创建一张表sheet1
sheet1.write(0,0,"截止日期\\wind代码")#表示在该表(0,0)位置处单元格,填上数字1,诸如此类,用该方法可以给表的其他单元格
#写入时间
print u"正在写入时间"
for i in range(0,len(Times_list)):
sheet1.write(i + 1, 0,str(Times_list[i]) )
#写入wind代码
print u"正在写入wind代码"
for i in range(0,len(Codes_list)):
sheet1.write( 0,i+1,str(Codes_list[i]) )
# 写入数据
print u"正在写入wind数据"
for i in range(0, len(Codes_list)):
for j in range(0, len(Times_list)):
sheet1.write(j+1, i+1, Data_list[i][j])
Tabel.close() # 保存结束
print "end"
if __name__ == '__main__':
file_list = []
winddm_list = []
Codes_list = []
Times_list = []
Data_list = []
dir = r"C:\Users\admin\Desktop\compare\table"
get_all_excel(dir) #扫描文件夹
open_xlsx(file_list)
edb_query()
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· spring官宣接入deepseek,真的太香了~