2016-07-19 4 views
1

Я пытаюсь экспортировать всех пользователей, которые регистрируются на моем сайте с помощью Janrain в Python. Из документа Janrain это выглядит как entity.find - лучший вызов для получения данных. Поэтому я ввожу следующий код:Как экспортировать все пользовательские данные Janrain с помощью API в Python

get_user = api.call 
       (
       "entity.find", 
       type_name = "user", 
       ) 

Однако код возвращает только 100 строк данных. Я знаю, что есть другое поле, называемое max_results, но оно может принимать 10000 записей максимум.

Итак, как использовать api для экспорта всех моих пользовательских данных без ограничения строки?

Спасибо!

ответ

0

Вам придется экспортировать данные в партии.

Как вы отметили, вызов entity.find принимает параметр max_results. Вы можете попытаться установить это на большое значение, но в большинстве случаев количество записей превысит пределы полезной нагрузки и/или ограничения времени ожидания API, а API-вызов завершится с ошибкой.

JanRain рекомендует пошагово наборы значений с параметрами first_results и MAX_RESULTS, например, в партиях от 1000:

first_result=0&max_results=1000 
first_result=1000&max_results=1000 
first_result=2000&max_results=1000 

Получить большое количество лиц Эффективно

Если вы запрашиваете группы записей, возможно, что кто-то еще удалит запись в одной из групп, которые вы уже получили. Поскольку entity.find подсчитывает каждую группу записей с начала списка, следующая группа может пропустить запись, заполняющую пространство удаленной записи. Чтобы избежать подобных проблем, следуйте этим рекомендациям:

При сборе больших групп записей: Дано N, максимальное количество возвращаемых результатов (1000 является хорошим местом для начала, 10000 это максимум), и е, фильтр запроса записи, используйте параметры:

- sort_on=["id"] 
- max_results=n 

Тогда:

1. Call entity.find with filter=f 
2. Let x be the id of the last record in the result set 
3. Call entity.find with filter=f and id > x 
4. If the result set is not empty, go to step 2 

Это приводит к быстрому поиску, без возможности пропуска каких-либо записей. Если вы не хотите использовать фильтр запросов, опустите параметр фильтра из вызова на шаге 1 и используйте filter = id> x на шаге 3.

Примечание: Janrain также рекомендует избегать использования «show_total_count», параметр в большинстве случаев использования, поскольку он поставляется со значительным снижением производительности. Кроме того, если система представляет собой действующую систему производства с относительно большим количеством активных регистраций, общее количество записей может отличаться в конце процесса экспорта по сравнению с начальным итогом.

+0

Большое спасибо! Мне удается заставить его работать! –

 Смежные вопросы

  • Нет связанных вопросов^_^