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变量始终存储0值。为什么?   如何使用Java/REST将Azure blob从一个存储容器移动到另一个存储容器?   java将commons DBCP从1.2升级到1.4,我应该害怕吗?   java如何使用分隔符拆分字符串?   java使用数组读取json对象   java在groovy中切片字符串   交换数组java的两个邻域元素   java移动用于确定字符串是否为回文的逻辑   java Android应用程序在一个活动中崩溃   java Sparkjava将webapp文件夹设置为静态资源/模板的文件夹   java复杂条件表达式,用户易用。   java如何仅在表存在时从表中选择值   java I无法将数据从Recyclerview传递到其他活动   java数据结构最佳设计(大数据)   java Android从DatePickerDialogFragment中删除日历视图   java将数据从Firebase获取到片段   数组。sort()在java中运行不正常