zoukankan      html  css  js  c++  java
  • 2019-03-15 使用Request POST获取CNABS网站上JSON格式的表格数据,并解析出来用xlwt写到Excel中

    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()
    
  • 相关阅读:
    JDBCj简介
    HttpStatus各种状态
    centos7安装docker并安装jdk和tomcat(常用命令)
    使用递归算法结合数据库解析成java树形结构
    大型网站系统架构的演化
    虚拟机下克隆3个centos系统并配置IP访问网络(转载)
    docker安装方法(常见安装出错问题汇总)
    Vmware虚拟机三种网络模式详解
    谈谈渲染,玩玩nginx——前后端分离,转发请求到Tomcat的尝试
    nginx实现wap移动端和PC端业务分离
  • 原文地址:https://www.cnblogs.com/theDataDigger/p/10536822.html
Copyright © 2011-2022 走看看