opentranslink项目旨在为translink.co.uk上的公共数据(如时间表)提供一个简单的pythonic接口。

opentranslink的Python项目详细描述


opentranslink项目旨在为translink.co.uk上的公共数据提供一个简单的pythonic接口,例如时间表

功能

  • 路线/服务列表
  • 公共汽车时刻表

未来功能

  • 更好/更好的api。
  • 列车时刻表
  • 列车状态
  • 行程计划
  • 路线图

使用量

开始

一旦库稍微成熟一点,就可以从pypi安装它,但现在,只需克隆repo repo并运行python setup.py install

opentranslink中的顶级对象(目前)是Service,您应该在导入模块后初始化所需的服务:

import opentranslink

# initialise a client for each available service
goldline = opentranslink.Service('goldline')
metro = opentranslink.Service('metro')
ulsterbus = opentranslink.Service('ulsterbus')

检索路线列表

您可以使用其route()方法检索给定服务的完整路由列表:

>>> print metro.routes()
[<opentranslink.Route-1A>, <opentranslink.Route-1B>, <opentranslink.Route-1C>, ...]

您还可以使用其代码检索特定的路线:

>>> print metro.route('1A')
<opentranslink.Route-1A>

使用时间表

路由对象包含一个timetable属性,该属性用于与路由的任何可用时间表交互:

>>> route = goldline.route('273')
>>> print route.timetable
[
    (u'Mondays to Fridays', <dataset object>),
    (u'Saturdays', <dataset object>),
    (u'Sundays', <dataset object>),
    (u'Mondays to Fridays', <dataset object>),
    (u'Saturdays', <dataset object>),
    (u'Sundays', <dataset object>)
]

timetable返回元组列表。返回的每个元组都包含对应数据集的标签(很快将添加更好的标签,包括入站/出站方向)。显示的数据集对象是tablib.dataset对象,您可以在tablib documentation

与数据集对象的交互很简单:

>>> dataset = route.timetable[0][1]

>>> # show list of stops on this route
>>> print dataset.headers
[u'Belfast City Centre, Europa Buscentre', u'Lurgan, Loughview Park and Ride Lough Road', ...]

>>> # show the timetable for the fifth bus of the day
>>> print zip(dataset.headers, dataset[4])
[(u'Belfast City Centre, Europa Buscentre', u'0835'), (u'Lurgan, Loughview Park and Ride Lough Road', u'0900'), ...]

您可以使用tablib的导出功能将时间表转储为一整套格式:

>>> print dataset.json
>>> print dataset.csv
>>> print dataset.yaml
>>> print dataset.xls

报告错误

https://github.com/paddycarey/opentranslink/issues报告错误(我知道有很多)。

如果您报告了一个错误,请包括:

  • 您的操作系统名称和版本。
  • 有关本地设置的任何有助于故障排除的详细信息。
  • 重现错误的详细步骤。

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

推荐PyPI第三方库


热门话题
java如何在Spring Boot 2.2.0中添加弹性搜索?   jakarta ee如何在没有java认证的情况下停止直接访问网页(自定义标记)   java Hibernate:使用executeUpdate()的批删除未清除一级缓存   java如何在Hibernate中插入外键定义为Long的实体?   带参数的java Mockito单元测试计算器方法   java如何从Rally Rest API读取集合属性   java如何对基于消息的处理执行集成测试?   带插入排序的java排序字符串数组标记,双链表   java为什么在基于注释的Spring app@Value默认值中解析为null?   java Apache Commons Http客户端注册特定于客户端的协议   如何使用java反转字符串中n个部分的n个字符   java Tomcat在本地主机上运行良好,但在部署时出现内部服务器错误   使用信号量的变量的java结果   Java编译/运行时类路径问题   java哪个提供商负责AES/CTR/NOP添加?   伪错误解码器中的java响应未获取Zalando问题自定义属性