Невозможно вызвать свойство «Размер» win32com.client.Dispatch AppointmentItem после получения назначений Outlook - PullRequest
0 голосов
/ 07 июня 2018

Я использую win32com.client для доступа к приложению Outlook.Мне удалось получить встречи из календаря, но я заинтересован в том, чтобы получить количество встреч, не входя в цикл для .

Я делаю следующее:

import win32com.client
outlook = win32com.client.Dispatch("Outlook.Application")
namespace = outlook.GetNamespace('MAPI')

appointments = namespace.GetDefaultFolder(9).Items

appointments.Sort("[Start]")
appointments.IncludeRecurrences = "True"

restriction = "[Start] >= '" + start_date.strftime('%Y.%m.%d') + "' AND [Start] <= '" + \
              end_date.strftime('%Y.%m.%d') + "'"
restricted_items = appointments.Restrict(restriction)
print(restricted_items.Size)

Из этой ссылки, описывающей API AppointmentItem, я обнаружил, что могу получить размер объекта Outlook.Но выдает исключение

AttributeError: '<win32com.gen_py.Microsoft Outlook 15.0 Object Library._Items instance at 0x73837256>' object has no attribute 'size'

Что я делаю не так?

Кстати, я хочу использовать это для проверки любых встреч, полученных в результате вышеуказанного запроса, чтобы я не использовал объект restriction в None.

1 Ответ

0 голосов
/ 08 июня 2018

Restrict возврат предметы коллекция.Он не раскрывает свойство Size - вам нужно Count.

. И если размер коллекции не известен заранее (Outlook рассчитывает его по требованию), используйте Items.GetFirst/GetNext для циклического прохождения.предметы в коллекции.

...