Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Schiphol飞行api,使用python获取飞行信息获取错误_Python_Api - Fatal编程技术网

Schiphol飞行api,使用python获取飞行信息获取错误

Schiphol飞行api,使用python获取飞行信息获取错误,python,api,Python,Api,我正试图从斯希波尔(阿姆斯特丹机场)的公共api获取数据。 我从你那里得到这个api 我正在使用python获取飞行数据。在我的代码中,我得到了一个错误,“app_id”是none,而这是填充的 控制台中的完整错误: 用法:航班信息api.py[选项] 航班信息api.py:错误:请提供应用程序id(-i,--app\u id) 有人能看出哪里出了问题吗 我的代码: import requests import sys import optparse def callPublicFlight

我正试图从斯希波尔(阿姆斯特丹机场)的公共api获取数据。 我从你那里得到这个api

我正在使用python获取飞行数据。在我的代码中,我得到了一个错误,“app_id”是none,而这是填充的

控制台中的完整错误: 用法:航班信息api.py[选项]

航班信息api.py:错误:请提供应用程序id(-i,--app\u id)

有人能看出哪里出了问题吗

我的代码:

import requests
import sys
import optparse


def callPublicFlightAPI(options):
    url = 'https://api.schiphol.nl/public-flights/flights'

    headers = {
        'resourceversion': 'v4',
        'app_id': 'b209eb7f',
        'app_key': '0b6c58b5ae4595dd39785b55f438fc70'
    }

    try:
        response = requests.request('GET', url, headers=headers)
    except requests.exceptions.ConnectionError as error:
        print(error)
        sys.exit()

    if response.status_code == 200:
        flightList = response.json()
        print('found {} flights.'.format(len(flightList['flights'])))
        for flight in flightList['flights']:
            print('Found flight with name: {} scheduled on: {} at {}'.format(flight['flightName'],
                                                                             flight['scheduleDate'],
                                                                             flight['scheduleTime']))
    else:
        print('''Oops something went wrong Http response code: {}{}'''.format(response.status_code, response.text))


if __name__ == '__main__':
    parser = optparse.OptionParser()
    parser.add_option('-i', '--app_id', dest='app_id',
                      help='App id used to call the API')
    parser.add_option('-k', '--app_key', dest='app_key',
                      help='App key used to call the API')

    (options, args) = parser.parse_args()
    if options.app_id is None:
        parser.error('Please provide an app id (-i, --app_id)')

    if options.app_key is None:
        parser.error('Please provide an app key (-key, --app_key)')

    callPublicFlightAPI(options)

您需要将其添加到标题中: “接受”:“应用程序/json”

祝你好运

编辑:

基本上,由于您希望以json的形式接收数据,因此必须在标题中添加“Accept”:“application/json”。在本例中,您的标题将如下所示:

headers = {
    'Accept': 'application/json',
    'resourceversion': 'v4',
    'app_id': YOUR_APP_ID,
    'app_key': YOUR_APP_KEY
}
response = requests.get(URL, headers=headers)
当您要发出请求时,必须在参数中添加头。您的请求将如下所示:

headers = {
    'Accept': 'application/json',
    'resourceversion': 'v4',
    'app_id': YOUR_APP_ID,
    'app_key': YOUR_APP_KEY
}
response = requests.get(URL, headers=headers)

我希望这有帮助

请提供一个解释,说明您希望OP添加上述标题的位置和原因。这不会帮助其他人在访问您的答案时寻找问题的解决方案。@mishsx是的,这对我很有效,您需要指定接收数据的方式,可以同时使用Json或XML。@mishsx我添加了解释@RonnyGiezen我很高兴能帮上忙!谢谢@nick,投票支持你的良好行为。继续做好工作,朋友。:)