【问题标题】:Unable to serialize Twilio Python SDK response objects as simple dict objects无法将 Twilio Python SDK 响应对象序列化为简单的 dict 对象
【发布时间】:2020-12-01 14:14:34
【问题描述】:

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

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 并直接进行调用。

【问题讨论】:

  • 请找到一个更能反映您的问题的标题;)

标签: python twilio twilio-api twilio-python


【解决方案1】:

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

虽然我仍然需要运行一个额外的不必要的循环,但我可以达到我想要的结果:

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]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-06
    • 1970-01-01
    • 1970-01-01
    • 2019-04-03
    • 1970-01-01
    • 2011-08-25
    • 1970-01-01
    相关资源
    最近更新 更多