Что такое правильный запрос python для получения типа телефонного номера в API Twilio Lookup и почему? - PullRequest
0 голосов
/ 04 марта 2020

На основе документов Twilio Lookup https://www.twilio.com/docs/lookup/api?code-sample=code-carrier-lookup-with-e164-formatted-number&code-language=Python&code-sdk-version=6.x Я предполагаю следующее:

phone_number = client.lookups.phone_numbers('+19234567890').fetch(type=['carrier'])

возвращает:

{
  "caller_name": null,
  "carrier": {
    "error_code": null,
    "mobile_country_code": "123",
    "mobile_network_code": "987",
    "name": "verizon",
    "type": "mobile"
  },
  "country_code": "US",
  "national_format": "(923) 456-7890",
  "phone_number": "+19234567890",
  "add_ons": null,
  "url": "https://lookups.twilio.com/v1/PhoneNumbers/+19234567890?Type=carrier"
}

Почему

print(phone_number['carrier']['type'])

возвращает ошибку TypeError: объект PhoneNumberInstance не является допустимым

Но:

print(phone_number.carrier['type'])

Правильно вернуть «мобильный»

1 Ответ

1 голос
/ 04 марта 2020

Twanio developer evangelist здесь.

Документы показывают полный ответ JSON, который возвращает API. Однако мы создали библиотеки для возврата объектов, для которых вы можете вызывать обычные методы. Итак, объект phone_number, возвращаемый здесь:

phone_number = client.lookups.phone_numbers('+19234567890').fetch(type=['carrier'])

имеет методы, определенные на основе наших определений API, для таких вещей, как carrier, country_code и national_format.

С другой стороны, я не думаю, что у нас обязательно есть определение для этого объекта-носителя, поэтому он возвращается в виде словаря. Таким образом, для просмотра полей на носителе необходимо использовать оператор индекса ([]).

Вы можете проверить определение объекта phone_number на GitHub здесь .

...