首页 > 解决方案 > 对 api 的请求不起作用(Curl 和 python)

问题描述

所以,我尝试制作一个程序来告诉我我的公共汽车的时间表,我将这些实时信息放在 Api 上:

https://api-lab-trone-stif.opendata.stif.info/service/tr-vianavigo/departures?line_id=100100385%3A385&stop_point_id=StopPoint%3A59%3A6195786

但是当我吃午饭时出现错误:

"error": "Unknown dataset: tr-vianavigo"

我想我有一个可以使用的令牌,但是如何使用?这个 api 的卷曲是:

curl -X GET --header "Accept: application/json" "https://api-lab-trone- 
stif.opendata.stif.info/service/tr-vianavigo/departures? 
line_id=100100020%3A20&stop_point_id=59%3A4726914"

当我在我的网络浏览器上使用第一个网址时,它可以工作并向我展示:

[
  {
    "lineDirection": "Juvisy RER",
    "code": "duration",
    "time": "12"
  },
  {
    "lineDirection": "Savigny Toulouse-Lautrec",
    "code": "duration",
    "time": "20"
  },
  {
    "lineDirection": "Juvisy RER",
    "code": "duration",
    "time": "38"
  },
  {
    "lineDirection": "Savigny Toulouse-Lautrec",
    "code": "duration",
    "time": "45"
  }
]

但在 python 中,如果我只是测试:

import requests 

#my token
apikey = 'ef169369dfd911b01371b73e975ed88adce881bc92dbbd9720551c94'

#url of the api
url ='https://api-lab-trone-stif.opendata.stif.info/service/tr-vianavigo/departures?line_id=100100385%3A385&stop_point_id=StopPoint%3A59%3A6195786'

#requests
r = requests.get(url, apikey)

print(r.text)

它犯了错误:

    "error": "Unknown dataset: tr-vianavigo"

标签: pythonpython-3.xapicurlpython-requests

解决方案


为此,您必须使用您的 API 密钥之一。API 密钥是通过您在My API keys中的用户帐户获得的。生成后,密钥必须作为查询参数 ( apikey) 插入到调用的 URL 中。对于您的示例:

curl -X GET --header "Accept: application/json" "https://api-lab-trone-stif.opendata.stif.info/service/tr-vianavigo/departures?line_id=100100020%3A20&stop_point_id=59%3A4726914&apikey=<YOUR-API-KEY>"

tr-unitaire-stif仅供参考,数据集上可用的实时数据范围可在此处获得。


推荐阅读