0
Отвечен

Федеральный округ отсутствует в 95% случаев

Алексей Лещенко 10 месяцев назад обновлен 10 месяцев назад 6

Добрый день!

Я на бесплатном тарифе. Использую API подсказок по адресам. Задача - найти федеральный округ по списку из 150 населенных пунктов, преимущественно городов.

Сервис работает, города находятся, но в 95% случаев federal_district: null. Причем я так и не понял, в каких случаях он не null - почему-то он возвращается только при запросе по каким-то рандомным деревням, и никогда, если запрос идет по городу.

сервис: стандартизация сервис: подсказки справочник: адреса

Ответ

Ответ
Отвечен

Дело не в API ключе.

Пока человек не выбрал конкретную подсказку (count > 1), Дадата использует справочник адресов налоговой службы (ФИАС). В нём нет Федеральных округов.


Когда же человек выбирает конкретную подсказку (count = 1), Дадата возвращает дополнительную информацию об адресе, в том числе Федеральный округ.


Текст запроса при count = 1 должен быть результатом одного из предыдущих запросов (значением поля unrestricted_value).

ХОРОШО, МНЕ ПОНРАВИЛОСЬ

Теперь все понятно, большое спасибо!

Оценка удовлетворенности от Алексей Лещенко 10 месяцев назад
На рассмотрении

Алексей, добрый день!

  1. Для решения вашей задачи нужно использовать сервис Стандартизации. Подсказки нужны для помощи при ручном вводе, а не для проверки списка населённых пунктов.
  2. Дайте примеры, пожалуйста. Я проверила — во всех случаях Федеральный округ определяется. 

вот вырезка из информации, которую у меня получается собрать: https://1drv.ms/u/s!As_JDntEPctwgYRrmaXCQtsea0YU6w?e=iwQhkJ

Еще раз проверил через Postman (на случай, если обработка в моем коде что-то неправильно фильтрует или ломает) - нет, действительно везде federal_district: null.

По поводу необходимости переключиться на другой сервис я вас услышал. И все же - как я вижу из доков, в подсказках эта инфа тоже должна быть.

В Подсказках есть Федеральные округа для всех этих адресов. Можно проверить здесь: https://dadata.ru/suggestions/usage/address/#demo

Валерия,

Да, на вашем сайте, где используется APIKEY с большими привилегиями, чем у моего аккаунта, все хорошо работает.

Но баг в том, что для моего APIKEY федеральные округа не возвращаются.

Выполняю код:

import requests

url = "payload" class="redactor-autoparser-object">https://suggestions.dadata.ru/suggestions/api/4_1/rs/suggest/address"
payload
= "{\r\n \"query\": \"Домодедово\"\r\n}"
headers = {
  'Authorization': 'Token 20fcc6df8b11d541f012005ff34e75c96a79e96d',
  'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data = payload)
print(response.text.encode('utf8'))

Получаю:


{
"suggestions": [
{
"value": "Московская обл, г Домодедово",
"unrestricted_value": "Московская обл, г Домодедово",
"data": {
...

"federal_district": null,
...
}
},
{
"value": "Московская обл, г Домодедово, село Домодедово",
"unrestricted_value": "Московская обл, г Домодедово, село Домодедово",
"data": {
...

"federal_district": null,
...
}
},
...
]
}

Ответ
Отвечен

Дело не в API ключе.

Пока человек не выбрал конкретную подсказку (count > 1), Дадата использует справочник адресов налоговой службы (ФИАС). В нём нет Федеральных округов.


Когда же человек выбирает конкретную подсказку (count = 1), Дадата возвращает дополнительную информацию об адресе, в том числе Федеральный округ.


Текст запроса при count = 1 должен быть результатом одного из предыдущих запросов (значением поля unrestricted_value).

Сервис поддержки клиентов работает на платформе UserEcho