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()
    
  • 相关阅读:
    Unity The Method Signature Matching Rule
    Unity The Property Matching Rule
    Unity The Type Matching Rule
    Unity The Custom Attribute Matching Rule
    Unity The Member Name Matching Rule
    Unity No Policies
    Unity The Return Type Matching Rule
    Unity The Parameter Type Matching Rule
    Unity The Namespace Matching Rule
    关于TSQL递归查询的(转)
  • 原文地址:https://www.cnblogs.com/theDataDigger/p/10536822.html
Copyright © 2011-2022 走看看