National Rail的一个简单的python包装器查询ldbs soap webservice

nre-darwin-p的Python项目详细描述


https://travis-ci.org/robert-b-clarke/nre-darwin-py.svg?branch=masterDownloads

简介

nre darwin py为通过ldb soap web服务访问国家铁路查询达尔文服务提供了一个抽象层。这项服务为所有英国火车站提供实时离站信息。

本模块的目标如下:

  • 允许开发人员避免SOAP的复杂性和选择Python SOAP客户端
  • 所涉及的决策
  • 提供更多pythonic接口到站板和服务详细信息
  • 通过pydoc或python shell中的help命令提供有用的文档
  • 方便您轻松创建登机牌网站和网络服务

开始

您需要注册达尔文通道,您可以通过国家铁路查询developer site来完成。

然后安装nre darwin py:

pip install nre-darwin-py

基本用法

启动会话:

>>> from nredarwin.webservice import DarwinLdbSession
>>> darwin_sesh = DarwinLdbSession(wsdl="https://lite.realtime.nationalrail.co.uk/OpenLDBWS/wsdl.aspx", api_key="YOUR_KEY")

取回曼彻斯特皮卡迪利车站的发车牌:

>>> board = darwin_sesh.get_station_board('MAN')
>>> board.location_name
'Manchester Piccadilly'
>> board.train_services[0].destination_text
'Rose Hill Marple'

检索有关特定服务的详细信息:

>>> service_id = board.train_services[0].service_id
>>> service = darwin_sesh.get_service_details(service_id)
>>> [cp.location_name for cp in service.subsequent_calling_points]
[Gorton, Fairfield, Guide Bridge, Hyde Central, Woodley, Romiley, Rose Hill Marple]

提供的example.py脚本显示了一个简单的离港板实现,供您参考

实用性

  • 环境变量Darwin Web Service_wsdlDarwin Web Service_api_key可用于设置wsdl URL和API key,因此在启动Darwinldbsession时不必指定它们。
  • ldb webservice的wsdl url可能会不时更改,而且在过去是这样。你的申请应该考虑到这一点。
  • 任何调用get_station_board或get_service_details都将导致对ldb webservice的查询,从而导致对外部服务的http请求。您的应用程序需要自己处理缓存和故障模式。
  • 创建darwinldbsession时会涉及开销,因为必须检索和解析wsdl。

学分

乔治·戈德伯格的额外贡献。Pete Barking对肥皂水代理问题的建议。

待办事项

  • 将出发和到达时间作为时区感知的日期时间对象提供
  • 更详细的异常处理
  • 更多示例

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

推荐PyPI第三方库


热门话题
java如何在收到spring mqtt集成中停止重复订阅保留的消息   java改造安卓在textview中显示数据   读取CSV Java时获取While循环中的最后一行数据   将Java程序转换为小程序的部署   java如何在不向Src添加文件的情况下将文件放入GitLab测试   java包含字节数组列表的方法   java十进制转换错误   eclipse是由java引起的。lang.ClassNotFoundException:org。springframework。js。资源ResourceServlet   继承Java向上与向下   java自动调整标签内容的大小   java从Android中的AlertDialog返回信息   java在声明按钮时仿真程序中出现错误   java编写刷新线程的最佳方法   Java初学者错误   java需要帮助重置JComboBox   java如何用Spring/MultipartFile捕获中断流   java是否可以在JUnit中设置被测试类的方法的返回值?