我正在尝试从gtfs读取数据,是一个压缩文件。google存储库告诉我这个库可以阅读,但是我没有找到任何关于如何使用transitfeed库来阅读gtfs的内容。
你知道吗,我怎样才能读懂gtfs的结构?
我想获得所有的结构并创建一个Json
例如
{
agency:{agencyName: 'aaa', agencyTimezone: 'bbb'...},
routes: [
busStop: {...},
busStop: {...},
]
.....
}我知道如何在库中验证它,我不知道它是否能帮上忙。
谢谢。
发布于 2019-04-26 20:53:00
在使用transitfeed时,我从未在文档中看到任何读取现有提要的方法,这也是我选择不在我的项目中使用它的原因之一。
有一个名为pygtfs的库可以从gtfs feed中提取所有相关信息,您可以使用它的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对象并获取有关提要的所有相关信息(大多数情况下,根据需要,您只需要其中的一部分)。
尽管如果你需要处理大量的提要,或者处理不完全符合标准的提要(涉及到这一点,pygtfs是相当暴躁的),我建议你只需解压缩提要并“手动”解析文件,就可以构建一个GTFS自制对象。
为了在json中编码数据,json库完成了这项工作。
发布于 2019-05-06 23:41:12
我找到了制作我想要的东西的方法。我将展示给你看。
只需要安装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的所有结构
注意:如果你想要stop_time的值,在trip中你必须使用GetStopTimes()方法
例如
trip.GetStopTimes()最后,我不需要将其解析为json。
https://stackoverflow.com/questions/55815242
复制相似问题