2017-04-20 64 views
0

我試圖從python使用twilio獲取一個月的消息日誌。下面的代碼在檢索一兩天時工作正常,但在擴展日期範圍時非常緩慢。有一個更好的方法嗎?twilio通過python將消息日誌導出到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添加到最後。

編輯

爲構建郵件的URL,你應該看看Messages resource

名單是在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和身份驗證令牌作爲身份驗證,您可以將任何查詢參數添加到您喜歡的網址的末尾。

要執行日期範圍,比如你的例子2017年1月3日之後和2017年2月3日之前,您的網址應該是這樣的:

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

退房的listing messages with curl的例子來看看這更詳細。

+0

你能否更清楚地瞭解如何構建這個網址?我不確定如何包含日期範圍。謝謝。 – pzale

+0

更新了我的答案,提供了有關URL和參數的更多信息。 – philnash