Python程序设计#3作业

Python程序设计#3作业 作业题目 基于 aiohttp(https://docs,aiohttp,org/en/stable/)实现一个服务查询客户端

本文包含相关资料包-----> 点击直达获取<-------

Python程序设计#3作业

作业题目

基于 aiohttp(https://docs.aiohttp.org/en/stable/)实现一个服务查询客户端,能够访问#2作业提供的服务。数据获取后进行格式转换:

  • JSON结果转换为TEXT格式(字段之间使用空格间隔、记录之间使用换行符间隔)
  • XML结果转换为TEXT格式(需求同上)。
  • CSV格式转换为TEXT格式(需求同上)。

要求客户端可以通过以上3种格式访问数据服务。

作业内容

程序源代码嵌入下方的code block中。

```python import aiohttp import asyncio import argparse import json import xml.etree.ElementTree as xmlet

async def main(host,port,start,end,fmt): url=f'http://{host}:{port}/{fmt}/start/{start}/end/{end}' async with aiohttp.ClientSession(trust_env=True) as session: async with session.get(url,verify_ssl=False) as response: print("Status:", response.status) print("Content-type:", response.headers['content-type']) text = await response.text() temper=list() if fmt=='csv': lines=text.split('\n') for line in lines: if line=="": continue words=line.split(',') temper.append({'year':words[0],'temperature':words[1],'lowess':words[2]})

        elif fmt=='xml':
            root=xmlet.fromstring(text)
            for child in root:
                temper.append({'year':child[0].text,'temperature':child[1].text,'lowess':child[2].text})
        elif fmt=='json':
            temper=json.loads(text)

        for words in temper:
            print('year:{0} temperature:{1} lowess:{2} '.format(words['year'],words['temperature'],words['lowess']))

loop = asyncio.get_event_loop()

loop.run_until_complete(main())

if name ==' main ': parser = argparse.ArgumentParser(description='world temperature') parser.add_argument('--start',dest='start',type=int,default=1880) parser.add_argument('--end',dest='end',type=int,default=2020) parser.add_argument('--fmt',dest='fmt',default='json') parser.add_argument('host') parser.add_argument('port') args=parser.parse_args() print(f'{args}')

asyncio.run(main(args.host,args.port,args.start,args.end,args.fmt))

```

代码说明

根据作业2,创建的url网址为 http://{host}:{port}/{fmt}/start/{start}/end/{end}

此次根据老师上课讲解并且结合了之前学习过的内容,利用了argparse库添加我们所需要的命令,通过命令行运行我们的程序。因为这次是在老师讲解之后再写的,所以写的比较顺利,并且对argparse库有了一个运用。

在通过aiohttp去调用接口的时候,会出现网址不受信任,ssl验证有误的情况,因此在get的时候增加 verify_ssl=False 与 trust_env=True ,这样子接口的网址可以顺利调用。其实自己对于一部的使用还是比较生疏,希望在此后的学习种进一步学习。

运行时输入:

python python3.py --start 2004 --end 2020 127.0.0.1 8000

输出时结果为:

Namespace(end=2020, fmt='json', host='127.0.0.1', port='8000', start=2004) Status: 200 Content-type: application/json year:2004 temperature:0.54 lowess:0.61 year:2005 temperature:0.68 lowess:0.62 year:2006 temperature:0.64 lowess:0.63 year:2007 temperature:0.66 lowess:0.63 year:2008 temperature:0.54 lowess:0.64 year:2009 temperature:0.66 lowess:0.64 year:2010 temperature:0.72 lowess:0.65 year:2011 temperature:0.61 lowess:0.67 year:2012 temperature:0.65 lowess:0.7 year:2013 temperature:0.68 lowess:0.74 year:2014 temperature:0.75 lowess:0.79 year:2015 temperature:0.9 lowess:0.83 year:2016 temperature:1.01 lowess:0.88 year:2017 temperature:0.92 lowess:0.91 year:2018 temperature:0.85 lowess:0.95 year:2019 temperature:0.98 lowess:0.98 year:2020 temperature:1.02 lowess:1.01

参考文献

  • 基于J2EE的物流信息管理系统的设计与实现(北京邮电大学·杨帆)
  • 基于J2EE的物流信息管理系统的设计与实现(北京邮电大学·杨帆)
  • 网上购物模拟系统(吉林大学·郭秋野)
  • 基于.NET平台的ETF终端设计与实现(吉林大学·刘健)
  • 基于PHP+MySQL的交互学习系统的设计与实现(吉林大学·刘博)
  • 基于J2EE的物流信息管理系统的设计与实现(北京邮电大学·杨帆)
  • 基于信息化服务的湖南电大课程教学系统的设计与实现(电子科技大学·龙昱)
  • 基于微服务架构的学习系统设计与实现(华中师范大学·熊其昌)
  • 基于.net的集团企业电子商务系统的设计与实现(山东大学·邵元辞)
  • 丰昌公司电子商务系统的设计与实现(大连理工大学·陈贺)
  • 基于.net的集团企业电子商务系统的设计与实现(山东大学·邵元辞)
  • 大连宫臣共享音乐网站的设计与实现(大连理工大学·宫臣)
  • 基于.NET平台的ETF终端设计与实现(吉林大学·刘健)
  • 基于.net的集团企业电子商务系统的设计与实现(山东大学·邵元辞)
  • 基于J2EE/SSH在线代码评测系统的设计与实现(电子科技大学·陈元静)

本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:毕设向导 ,原文地址:https://m.bishedaima.com/yuanma/36024.html

相关推荐

  • 基于Java Swing实现的简易考试系统界面搭建

    基于Java Swing实现的简易考试系统界面搭建 一,任务介绍 1,1 任务描述 本任务要搭建一个考试系统界面,考试题型主要有两类:判断题和单选题
    2024年05月14日
    2 1 1
  • 基于Python实现RRT与双向RRT算法

    1, 算法概述 1,1 RRT快速拓展随机数算法 RRT 的思想是快速扩张一群像树一样的路径以探索(填充)空间的大部分区域,伺机找到可行的路径,虽然不知道出路在哪里
    2024年05月14日
    1 1 1
  • 高校教务系统之Python

    高校教务系统 一,需求分析 1,1 业务场景 高校教务系统用户分为三种:管理员,教师,学生, 这也是根据现实大学生中的教务系统的情况,以及自己的一些想象
    2024年05月14日
    2 1 1
  • 基于Python实现类高级语言的词法分析器

    1, 需求分析 要求:阐述词法分析系统所要完成的功能 设计实现类高级语言的词法分析器,基本功能如下: 能识别以下几类单词: 标识符(由大小写字母
    2024年05月14日
    2 1 2
  • 基于JSP的学生信息管理系统

    Student-information-managemen 基于JSP的学生信息管理系统 参考文献 开放性实验室管理系统的设计与实现(南昌大学·刘定军) 基于JSP的辽宁大学毕业设计指导系统的设计与实现(吉林大学·王一凡) 基于J2EE的高校人力资源信息管理的设计与实现(四川大学·付明柏) 学生综合信息管理平台的设计与实现(吉林大学·刘铁刚) 基于Web的学生管理信息系统的分析和设计(厦门大学·叶露阳) 基于MVC与ASP
    2024年05月14日
    2 1 1
  • 基于Python构建Wiki中文语料词向量模型

    利用Python构建Wiki中文语料词向量模型试验 本实例主要介绍的是选取wiki中文语料,并使用python完成Word2vec模型构建的实践过程
    2024年05月14日
    1 1 1
  • 基于Servlet + JSP实现的简易版的学生管理系统

    学生管理系统简易版总结 一,技术准备 这个项目是自己用于巩固 J2EE 相关知识的练手项目,非常简单,但是相关的功能却非常实用,所以在这里分享一下 为了完成这个项目
    2024年05月14日
    18 1 2
  • 基于Java+SSM的失物招领平台

    失物招领平台在当今社会具有重要意义,随着城市化进程的加快和人口流动的增加,人们的物品丢失的情况也日益普遍,针对这一现状,基于Java+SSM框架的失物招领平台应运而生,该平台为普通用户提供了一个便捷的途径来寻找丢失的物品
    2024年05月07日
    3 1 1
  • 飘香水果购物网站

    这是一个🔥🔥基于SpringBoot框架的飘香水果购物网站设计与实现🔥🔥的项目源码,开发语言Java,框架使用的SpringBoot+vue技术,开发环境Idea/Eclipse
    2024年05月23日
    6 1 1
  • 基于springboot+vue框架实现的在线教育系统

    基于springboot+vue框架实现的在线教育系统 一,引言 1,编写目的 希望给广大程序员们提供一个分享交流的平台,主要提供视频与文档的上传共享功能
    2024年05月14日
    4 1 1

发表回复

登录后才能评论