前面我们讲了怎样从东方财富网站中获取全部股票数据,那么怎样才能对股票进行筛选和分析呢?这就需要将股票数据保存下来,今天我们就来看一下怎样将这些数据保存到Excel当中。

目前Excel常用的格式有xls、xlsx,小编推荐把数据保存为xlsx格式,同时推荐使用openpyxl。

首先,创建一个Excel,同时添加标题行,如下图。

然后,将前文获取的数据保存到Excel中。代码如下:

import requests from openpyxl import load_workbook # 打开Excel wb = load_workbook('./股票.xlsx', read_only=False) # 打开工作表 ws = wb.active a = 2 # 从第2行开始插入数据 # 获取股票数据 url = 'http://27.push2.eastmoney.com/api/qt/clist/get' for i in range(1, 10): data = { 'fields': 'f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f12,f13,f14,f15,f16,f17,f18,f20,f21,f23,f24,f25,f22,f11,f62,f128,f136,f115,f152', 'pz': 1000, # 每页条数 'pn': i, # 页码 'fs': 'm:0 t:6,m:0 t:80,m:1 t:2,m:1 t:23,m:0 t:81 s:2048' } response = requests.get(url, data) response_json = response.json() if response_json['data'] is None: # 返回数据为空时停止循环 break for j, k in response_json['data']['diff'].items(): code = k['f12'] # 代码 name = k['f14'] # 名称 price = k['f2'] # 股价 pe = k['f9'] # 动态市盈率 pb = k['f23'] # 市净率 total_value = k['f20'] # 总市值 currency_value = k['f21'] # 流通市值 price = round(price/100, 2) # 价格转换为正确值(保留2位小数) pe = round(pe/100, 2) # 市盈率转换为正确值(保留2位小数) pb = round(pb/100, 2) # 市净率转换为正确值(保留2位小数) total_value = round(total_value / 100000000, 2) # 总市值转换为亿元(保留2位小数) currency_value = round(currency_value / 100000000, 2) # 流通市值转换为亿元(保留2位小数) print('代码: %s, 名称: %s, 现价: %s, 动态市盈率: %s, 市净率: %s, 总市值: %s亿, 流通市值: %s亿' % (code, name, price, pe, pb, total_value, currency_value)) # 将数据写入到Excel中 ws.cell(row=a, column=1).value = code ws.cell(row=a, column=2).value = name ws.cell(row=a, column=3).value = price ws.cell(row=a, column=4).value = pe ws.cell(row=a, column=5).value = pb ws.cell(row=a, column=6).value = total_value ws.cell(row=a, column=7).value = currency_value a += 1 # 保存 wb.save('./股票.xlsx')

结果如图:

#财经# #股票# #股市分析# #A股# #股票财经#