Python. Не могу получить ответ на запрос списка водителей fleet-api.taxi.yandex.net

Рейтинг: 0Ответов: 1Опубликовано: 24.02.2023

Нужна ваша помощь, не понимаю, в чем ошибся. Пишу в соответствии с документацией https://fleet.yandex.ru/docs/api/?lang=ru на языке Python, но все равно код не выводит список водителей в консоль.

import requests
import json
import datetime
datetime.datetime.utcnow().isoformat() + "Z"


url = 'https://fleet-api.taxi.yandex.net/v1/parks/driver-profiles/list'

headers = {'X-API-Key': 'inXVNAEujErWUtpuQArgrosqOndTi', 'X-Client-ID': 'taxi/park/4078fd71a83ff2d84b6f4680c'} # не оригинал

data = {
  "fields": {
    "account": [
      "balance"
    ],
    "car": [
      "color"
    ],
    "current_status": [
      "status"
    ],
    "driver_profile": [
      "last_name"
    ],
    "park": [
      "name"
    ]
  },
  "limit": 200,
  "offset": 0,
  "query": {
    "park": {
      "account": {
        "last_transaction_date": {
          "from": "string",
          "to": "string"
        }
      },
      "driver_profile": {
        "id": [
          "211dfdb6gk054u8c8cc9" #не оригинал
        ],
        "work_rule_id": [
          "bc43tre6ba054db3ckfgvcb" #не оригинал
        ],
        "work_status": [
          "working"
        ]
      },
      "id": "ff8c228fd2d844073b6f4" #не оригинал
    },
    "text": "string"
  },
  "sort_order": [
    {
      "direction": "asc",
      "field": "driver_profile.created_date"
    }
  ]
}

response = requests.post(url, headers=headers, data=json.dumps(headers))
print(response.status_code)
print(response.json())

Получаю следующую ошибку в косноль:

    400
{'message': 'query must be present'}

Помогите пожалуйста составить правильно код, чтоб все таки ответ пришел)

Ответы

▲ 0

Вы в data (где отправка POST-запроса идет) передаете заголовки headers, а нужно data ))

Вы хотите передать json данные? Если да, то в заголовках запроса нужно добавить так:

headers = {'Content-Type': 'application/json', 'X-API-Key': 'inXVNAEujErWUtpuQArgrosqOndTi', 'X-Client-ID': 'taxi/park/4078fd71a83ff2d84b6f4680c'}

и тут еще так:

response = requests.post(url, headers=headers, json=data)