“space-track-api”包的小型异步包装器。

aio-space-track-api的Python项目详细描述


AsyncSpaceTrackAPI异步客户端

“空间跟踪API”包的小型异步包装器。

要求

  • python>;=3.5.0
  • 空间轨迹API>;1.0.0
  • aiohttp>;=2.0.7

安装

pip install aio-space-track-api

开始

要从太空轨道中检索某些内容:

# -*- coding: utf-8 -*-importasynciofrompprintimportpprintfromaio_space_track_apiimportAsyncSpaceTrackApiasyncdefmain(loop):asyncwithAsyncSpaceTrackApi(loop=loop,login='<YOUR_LOGIN>',password='<YOUR_PASSWORD>')asapi:tle_list=awaitapi.tle(EPOCH='>now-3',NORAD_CAT_ID=(25544,25541,),order_by=('EPOCH desc','NORAD_CAT_ID',),predicate=('EPOCH','NORAD_CAT_ID','TLE_LINE0','TLE_LINE1','TLE_LINE2',))pprint(tle_list,indent=2)if__name__=='__main__':loop=asyncio.get_event_loop()loop.run_until_complete(main(loop))

创建简单的代理空间跟踪服务器:

# -*- coding: utf-8 -*-fromaiohttpimportwebfromaio_space_track_apiimportAsyncSpaceTrackApiasyncdefquery(request):params={mvk:request.query.getall(mvk)formvkinrequest.query.keys()}result=awaitapp['space_track'].query(**params)ifisinstance(result,(dict,list)):returnweb.json_response(result)elifisinstance(result,str):returnweb.Response(text=result)returnweb.Response(body=result)asyncdefstart_space_track(app):app['space_track']=AsyncSpaceTrackApi(loop=app.loop,login='<YOUR_LOGIN>',password='<YOUR_PASSWORD>')awaitapp['space_track'].login()asyncdefcleanup_space_track(app):awaitapp['space_track'].logout()app['space_track'].session.close()if__name__=='__main__':app=web.Application()app.on_startup.append(start_space_track)app.on_cleanup.append(cleanup_space_track)app.router.add_get('/',query)web.run_app(app,port=8080)

使用“httpie”<;https://github.com/jakubroztocil/httpie>;包检索:

$ http 'http://localhost:8080/?EPOCH=>now-2&NORAD_CAT_ID=25544&order_by=EPOCH%20desc&order_by=NORAD_CAT_ID&predicate=NORAD_CAT_ID&predicate=EPOCH&NORAD_CAT_ID=25541&predicate=TLE_LINE0&predicate=TLE_LINE1&predicate=TLE_LINE2'

HTTP/1.1 200 OK
Content-Length: 787
Content-Type: application/json; charset=utf-8
Date: Fri, 19 May 2017 15:36:30 GMT
Server: Python/3.6 aiohttp/2.0.7

[
    {
        "EPOCH": "2017-05-18 12:54:34",
        "NORAD_CAT_ID": "25544",
        "TLE_LINE0": "0 ISS (ZARYA)",
        "TLE_LINE1": "1 25544U 98067A   17138.53789694 +.00010471 +00000-0 +16649-3 0  9993",
        "TLE_LINE2": "2 25544 051.6431 186.1005 0005417 167.7458 303.2068 15.53904648057142"
    },
    {
        "EPOCH": "2017-05-18 01:38:13",
        "NORAD_CAT_ID": "25541",
        "TLE_LINE0": "0 ARIANE 44LP DEB",
        "TLE_LINE1": "1 25541U 88109H   17138.06821101 +.00000205 +00000-0 +11912-2 0  9995",
        "TLE_LINE2": "2 25541 006.9551 084.3526 7116887 037.1179 355.1935 02.36325430158541"
    },
    {
        "EPOCH": "2017-05-17 18:20:34",
        "NORAD_CAT_ID": "25544",
        "TLE_LINE0": "0 ISS (ZARYA)",
        "TLE_LINE1": "1 25544U 98067A   17137.76428422 +.00000891 +00000-0 +20809-4 0  9995",
        "TLE_LINE2": "2 25544 051.6403 189.9518 0005214 167.7282 292.6823 15.54019900057027"
    }
]

源代码

github存储库中提供了最新的开发人员版本: https://github.com/nkoshell/aio-space-track-api

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
html如何在JavaScript中获取当前Windows用户的名称   用于屏蔽电子邮件的java正则表达式   java Jsoup Android解析   为了避免在运行时缺少Java泛型,将超类型绑定到子类实例   java JTextArea。setText(空);不会释放内存   安卓源Java OutOfMemoryError在构建AOSP 10时出错   java打印到达数组末尾所需的最小跳数序列   使用mvn命令的java Selenium TestNG并行执行   javasocket编程:在关闭服务器之前通知所有客户端   java如何在加载新的安卓片段时显示progressbar?   java从actor系统中删除AKKA actor,并创建另一个具有相同路径名的actor   java我可以用浓缩咖啡做性能测试,还是应该用其他东西?   JavaTreeView(TreeItem)是否可以获取层次结构索引?   带远程服务的java Android应用程序