2019-03-15 使用Request POST获取CNABS网站上JSON格式的表格数据,并解析出来用xlwt写到Excel中
2024-08-31 12:32:01
import requests
import xlwt url = 'https://v1.cn-abs.com/ajax/ChartMarketHandler.ashx'
headers={
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'
}
# 每个交易场所每一年的发行金额
def get_marketInventory(): FromData={
'type':'marketInventory'
}
rep=requests.post(url,data=FromData).json()
for i in rep:
# print(i['SeriesName'],i['Points'])
for j in i['Points']:
result={
'交易场所':i['SeriesName'],
'发行年份':j['X'],
'发行金额':j['Y']
}
yield result
def parse_marketInventory():
wb = xlwt.Workbook()
sheet = wb.add_sheet('marketInventory')
sheet.write(0, 0, label='交易场所')
sheet.write(0, 1, label='发行年份')
sheet.write(0, 2, label='发行金额')
# sheet.write()
result = get_marketInventory()
# print(result)
i = 1
for res in result:
# print(res)
sheet.write(i, 0, label=res['交易场所'])
sheet.write(i, 1, label=res['发行年份'])
sheet.write(i, 2, label=res['发行金额'])
wb.save('marketInventory.xls')
i = i + 1
# print('共有' + str(i) + '行数据')
# 各个资产类型每一年的发行金额
def get_marketTotal():
FromData = {
'type': 'marketTotal'
}
rep = requests.post(url, data=FromData).json()
for i in rep:
# print(i['SeriesName'],i['Points'])
result = {
'资产类型': i['SeriesName'],
'发行金额':""+str(i['Points'][0]['Y'][0]).replace("[","'").replace("]","'"),
'存量金额':""+str(i['Points'][1]['Y'][0]).replace("[","'").replace("]","'")
}
yield result
def parse_marketTotal():
wb = xlwt.Workbook()
sheet = wb.add_sheet('marketTotal')
sheet.write(0, 0, label='资产类型')
sheet.write(0, 1, label='发行金额')
sheet.write(0, 2, label='存量金额')
# sheet.write()
result = get_marketTotal()
i = 1
for res in result:
# print(res)
sheet.write(i, 0, label=res['资产类型'])
sheet.write(i, 1, label=float(res['发行金额']))
sheet.write(i, 2, label=float(res['存量金额']))
wb.save('marketTotal.xls')
i = i + 1
# print('共有' + str(i) + '行数据')
if __name__ == '__main__':
parse_marketInventory()
parse_marketTotal()
最新文章
- ZOJ Problem Set - 1049 I Think I Need a Houseboat
- 分离的思想结合单链表实现级联组件:CascadeView
- Apache的初中级面试题
- Write on ……… failed: 112(failed to retrieve text for this error. Reason: 15105)
- ListView适配器获取布局文件作为View的三种方式
- 转 https://www.zhihu.com/question/27606493/answer/37447829
- 自动生成XML反序列化的类
- ajax post 时 form数据serialize()
- VS2010每次编译都重新编译整个工程的解决方案
- VBA:Google翻译(含tk算法)
- Android 自己定义 TextView drawableTop 图标与文字左对齐(效果图)
- linux0.11学习笔记(2)
- Webbrowser控件史上最强技巧全集
- red hat 6.5 红帽企业Linux.6.5 yum This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register. 解决办法
- 使用SQL 提示优化sql
- 使用excel整理脚本
- day 17-18 常用模块
- linux虚拟机 在install yum时提示无法获得锁 var/lib/dekg/lock时该如何解决?
- Opencv-Python学习笔记(二)
- Asp.net Web Api开发Help Page配置和扩展
热门文章
- rtsp://admin:12345@192.168.1.198/mpeg4/main/ch01/av_stream
- prim求最小生成树
- 告诉你 SQL 数据库与 NoSQL 数据库的区别
- mysql在windows下主从同步配置
- 工具-docker01
- PHP 7给我震撼
- Codeforces 558B Amr and The Large Array
- Spring Boot + Bootstrap + jQuery + Freemarker
- js如何计算浮点数
- PHP substr() 函数截取中文字符串乱码