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()
    
  • 相关阅读:
    linux安装maven
    Jenkins 改成中文语言显示
    appium怎么按下系统按键?如按下返回键、home键等等
    Jenkins+TestNG+gitlab+maven持续集成
    问题一:使用AndroidDriver而非原来的AppiumDriver的原因
    appium教程
    问题二:appium 搞定权限弹框的一个小办法
    问题三:Appium 的 UIAutomator2 模式下使用 sendKeys 出现错误
    TestNG执行顺序控制
    idea Mac 快捷键
  • 原文地址:https://www.cnblogs.com/theDataDigger/p/10536822.html
Copyright © 2011-2022 走看看