0
Отвечен

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

Алексей Лещенко 4 года назад обновлен 4 года назад 6

Добрый день!

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

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

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

Ответ

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

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

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


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


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

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

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

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

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

  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