阅读gtfs google transitFeed python

2024-05-06 19:01:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着从一个gtfs上读到一个zip。google存储库告诉我们这个库可以阅读,但是,我没有找到任何关于如何使用transitfeed库读取gtfs的信息。在

你知道吗,我怎样才能读懂GTF的结构?在

我想获取所有的结构并创建一个Json

例如

{
 agency:{agencyName: 'aaa', agencyTimezone: 'bbb'...},
 routes: [
  busStop: {...},
  busStop: {...},
 ]
 .....
}

我知道如何在库中验证它,我不知道它是否可以

谢谢。在


Tags: 信息jsongooglezip结构gtfbbbgtfs
2条回答

使用^{},我从未在文档中看到任何读取现有提要的方式,这也是我选择不在项目中使用它的原因之一。在

有一个名为^{}的库从gtfs提要中提取所有相关信息,您可以使用它的API将其转换为您喜欢的格式。
要读取gtfs提要(文件夹或.zip文件),只需执行以下操作:

sched = pygtfs.Schedule(":memory:")                # create a schedule object (a sqlite database)
pygtfs.append_feed(sched, "sample-gtfs-feed.zip")  # add the GTFS feed to the database

然后,API中有几个方法可以查询schedule对象并获取有关提要的所有相关信息(大多数情况下,根据需要,您只需要其中的一部分)。在

尽管如果您需要使用大量的feed,或者使用不完全符合标准的feed(pygtfs在这方面相当暴躁),我建议您只需解压feed并“手动”解析文件来构建GTFS自制对象。在

为了用json编码数据,^{}库完成了这项工作。在

我找到了做我想要的东西的方法。我要给你看。在

只需要安装googleTransitFeed。在

代码非常简单。在

import transitfeed

extension_module = transitfeed
gtfs_factory = extension_module.GetGtfsFactory()
loader = gtfs_factory.Loader(<the path of you zip>)
schedule = loader.Load()

现在您已经在schedule对象中拥有了gtfs的所有结构

注意:如果您想获得停止时间值,在trip中,您必须使用方法GetStopTimes()

例如

^{pr2}$

最后,我不需要将其解析为json。在

相关问题 更多 >