3

我正在查询可用的电话号码,如下所示:

from twilio.rest import Client

client = Client(settings.TWILIO_ACCOUNT_SID, settings.TWILIO_AUTH_TOKEN)
available = client.available_phone_numbers("US").local.list()

我想将所有可用的电话号码作为字典对象进行循环,但据我所知,Twilio 的 Python SDK 没有类似的东西。

我必须执行以下操作:

results = [{
    "address_requirements": phone.address_requirements,
    "beta": phone.beta,
    "capabilities": phone.capabilities,
    "MMS": phone.MMS,
    "SMS": phone.SMS,
    "fax": phone.fax,
    "voice": phone.voice,
    "friendly_name": phone.friendly_name,
    "iso_country": phone.iso_country,
    "lata": phone.lata,
    "locality": phone.locality,
    "longitude": phone.longitude,
    "phone_number": phone.phone_number,
    "postal_code": phone.postal_code,
    "rate_center": phone.rate_center,
    "region": phone.region
} for phone in available]

这似乎很愚蠢,因为 API 返回了我想要的确切格式。我很想放弃 SDK 并直接拨打电话。

4

1 回答 1

2

经过大量搜索和深入研究源代码后,我找到了一种访问所需数据的简单方法。它使用了一个你不应该使用的私有属性,但如果它们不能提供你需要的东西,你就必须做你必须做的事情。

我可以通过这个实现我想要的结果,尽管我仍然需要运行一个额外的不必要的循环:

from twilio.rest import Client

client = Client(settings.TWILIO_ACCOUNT_SID, settings.TWILIO_AUTH_TOKEN)
available = client.available_phone_numbers("US").local.list()
results = [phone._properties for phone in available]
于 2020-08-11T20:52:45.447 回答