Biblioteca Helper Twilio Python - Come fai a sapere quante pagine è restituita la risorsa?

StackOverflow https://stackoverflow.com/questions/8392491

  •  28-10-2019
  •  | 
  •  

Domanda

Sto cercando di scrivere un semplice script per scaricare le informazioni sui dettagli della chiamata da Twilio utilizzando la biblioteca di Helper Python. Finora, sembra che la mia unica opzione sia quella di utilizzare il metodo .iter () per ottenere ogni chiamata mai fatta per il Sobaccount. Questo potrebbe essere un numero molto grande.

Se utilizzo la risorsa .list (), non mi sembra di darmi un conteggio di pagina da nessuna parte, quindi non so per quanto tempo continuare a paging per ottenere tutte le chiamate per il periodo di tempo. Cosa mi manca?

Ecco i documenti con campioni di codice:http://readthedocs.org/docs/twilio-python/en/latest/usage/basics.html

È stato utile?

Soluzione 2

Come menzionato nel commento, il codice sopra non ha funzionato perché restaning_messages = client.calls.count () restituisce sempre 50, rendendolo assolutamente inutile per il paging.

Invece, ho finito per provare la pagina successiva fino a quando non fallisce, il che è abbastanza hacky. La biblioteca dovrebbe davvero includere i numpages nella risorsa dell'elenco per il paging.

import twilio.rest
import csv

account = <ACCOUNT_SID>
token = <ACCOUNT_TOKEN>

client = twilio.rest.TwilioRestClient(account, token)

csvout = open("calls.csv","wb")
writer = csv.writer(csvout)

current_page = 0
page_size = 50
started_after = "20111208"

test = True

while test:

     try:
         calls_page = client.calls.list(page=current_page, page_size=page_size, started_after=started_after)

         for calls in calls_page:
             writer.writerow( (calls.sid, calls.to, calls.duration, calls.start_time) )

         current_page += 1
     except:
         test = False

Altri suggerimenti

Al momento non è molto ben documentato, ma puoi utilizzare le seguenti chiamate API per pagina attraverso l'elenco:

import twilio.rest
client = twilio.rest.TwilioRestClient(ACCOUNT_SID, AUTH_TOKEN)
# iterating vars
remaining_messages = client.calls.count()
current_page = 0
page_size = 50 # any number here up to 1000, although paging may be slow...
while remaining_messages > 0:
     calls_page = client.calls.list(page=current_page, page_size=page_size)
     # do something with the calls_page object...
     remaining_messages -= page_size
     current_page += 1

Puoi passare page e page_size argomenti al list() funzione per controllare quali risultati vedi. Aggiornerò la documentazione oggi per renderlo più chiaro.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top