所以我一直在寻找一种方法将GTFS数据导入到我的应用程序的SQLdb中。我在manual找到了一个解决方案。
但是,这是使用python编写的。我不认为我可以直接在我的Windows应用程序中使用它。如果我在这里错了,请纠正我。
但是我对理解解决方案背后的逻辑和创建自己的“解析器”没有任何问题。
因此,我在记事本上打开了GTFS数据文件“calendar dates.txt”,发现其内容令人困惑。它就像:
service_id,date,exception_type1,20151012,11,20151111,12,20150822,12,20150829,12.....
当没有换行符时,你会发现它很混乱。 但是我在这里粘贴代码向你展示它们,它会自动格式化为:
{{1}}
现在它显然有道理! (解析之间有空格)..
但我不明白。记事本显示错了吗?为了编写自己的解析器,如何“正确”地查看数据呢?
答案 0 :(得分:1)
您的GTFS数据很可能是使用UNIX行尾字符(仅限换行符)而不是MS-DOS / Windows字符(回车符后跟换行符号)编写的。这是permitted by the GTFS spec,其中说:
每一行必须以CRLF或LF换行符结尾。
大多数可用于Windows的应用程序软件(包括记事本)仅识别Windows行尾字符,打开在UNIX上创建的文件会将整个内容显示为单行,如您所见。但是,像Notepad ++这样适用于开发人员的工具,以及大多数编程库(例如那些用于解析CSV文件的编程库)通常都足够智能,可以识别这两种格式并适当地处理它们。
如果您有兴趣,维基百科可以提供有关end-of-line representations across operating systems的更多信息。
最后,我会提到我最近发布了Github my own GTFS-to-SQLite loading tool,它是用C语言编写的,并使用libcsv来解析GTFS数据。如果您使用的语言低于Python,您可能会发现它很有用。
答案 1 :(得分:0)
首先复制相关的GTFS(路线,shaps等),然后粘贴在在线文本编辑器中(例如:http://www.editpad.org/)
然后从此在线文本编辑器复制并再次粘贴到原始.txt。