无法使用使用 google 协议缓冲区的 python 应用程序

Can't use a python application, which uses the google protocol buffer

我正在尝试使用我在 GitHub 上找到的应用程序,它记录 public 运输位置的实时更新,请参阅以下 link 说明和应用程序:

https://github.com/mattwigway/gtfsrdb

当我将终端命令修改为:

python gtfsrdb.py run -p https://gtfsrt.api.translink.com.au/Feed/SEQ.pb -d sqlite:///test.db -c

我收到以下错误:

Exception occurred in iteration
(<class 'google.protobuf.message.DecodeError'>, 
DecodeError('Unexpected end-group tag.',), 
<traceback object at 0x107d21248>)

如何让此应用程序录制来自 https://gtfsrt.api.translink.com.au

的实时提要

您使用了 URL:

https://gtfsrt.api.translink.com.au/Feed/SEQ.pb

此 URL 不存在 -- 它 return 是 404。您可以通过在浏览器中打开它来查看它。你的脚本 运行 可能试图将 404 页面 HTML 解析为 protobuf,这当然会失败。

也许你的意思是这个url:

https://gtfsrt.api.translink.com.au/Feed/SEQ

注意末尾缺少 .pb。我自己 gtfsrdb.py 没有尝试过,但是这个 URL 出现在您链接的网站上并且出现在 return protobuf 数据中。

由于身份验证错误,我出现了这个错误。一旦我解决了这个问题,错误就消失了。