2017-04-20 2 views
0

저는 python을 사용하여 twilio에서 한 달 동안의 메시지 로그를 검색하려고합니다. 아래 코드는 하루나 이틀을 검색 할 때 제대로 작동하지만 기간을 확장 할 때 속도가 매우 느립니다. 이 작업을 수행하는 더 좋은 방법이 있습니까?twilio 내보내기 메시지가 파이썬을 통해 CSV로 기록됩니다.

import pandas as pd 
from datetime import date 
from twilio.rest import Client 

# Your Account Sid and Auth Token from twilio.com/user/account 
account_sid = "####" 
auth_token = "####" 
client = Client(account_sid, auth_token) 


messages = client.messages.list(
    date_sent_after=date(2017, 3, 1), 
    date_sent_before=date(2017, 3, 2) 
) 


d = [] 
for message in messages: 
    d.append((message.from_, message.to, message.body, message.status, 
    message.date_sent, message.price)) 

print(d) 

df = pd.DataFrame(d, columns=('From', 'To', 'Body', 'Status', 'Sent Date', 'Price')) 


print(df.dtypes) 

df.to_csv('export.csv', index=False, encoding='utf-8') 

답변

0

여기에 Twilio 개발자 전도사가 있습니다.

여기에 약간의 트릭이 있습니다. 실제로 get CSVs straight from Twilio 수 있습니다. 데이터의 URL을 구성한 다음 .csv을 끝에 추가하기 만하면됩니다.

편집 당신이 Messages resource 체크 아웃해야합니다 귀하의 메시지에 대한 URL을 구성합니다. 당신은 당신의 계정을 사용하여 URL을 요청해야합니다

https://api.twilio.com/2010-04-01/Accounts/{AccountSid}/Messages

과 CSV로 설정하는, 그냥 .csv

https://api.twilio.com/2010-04-01/Accounts/{AccountSid}/Messages.csv

을 추가

목록은 URL에 있습니다 SID 및 인증 토큰을 인증으로 사용하고 원하는 모든 URL을 쿼리 매개 변수에 추가 할 수 있습니다.

는 2017년 1월 3일 후 당신의 예처럼, 날짜 범위를 수행하고 2017년 2월 3일 전에 URL은 다음과 같이 보일 것이다 :

https://api.twilio.com/2010-04-01/Accounts/{AccountSid}/Messages.csv?DateSent>=2017-03-01&DateSent<=2017-03-02

체크 아웃 listing messages with curl의 예를보고 이것에 대해서는 좀 더 자세히 설명합니다.

+0

이 URL을 구성하는 방법에 대해 좀 더 명확하게 설명해 주시겠습니까? 기간을 포함하는 방법을 모르겠습니다. 감사. – pzale

+0

URL과 매개 변수에 대한 자세한 정보로 내 대답이 업데이트되었습니다. – philnash