从使用python的Microsoft Outlook检索忙/闲状态(Retrieving free

2019-10-19 01:47发布

我试图从Outlook压延检索忙/闲状态使用Python语言特定的人。

这是我为它的代码。

import win32com.client

obj_outlook = win32com.client.Dispatch('Outlook.Application')
obj_Namespace = obj_outlook.GetNamespace("MAPI")
obj_Recipient = obj_Namespace.CreateRecipient("someone@domain.com")
str_Free_Busy_Data = obj_Recipient.FreeBusy("11-11-2013", 11)
print str_Free_Busy_Data

但我发现了一个错误:

Traceback (most recent call last):
  File "<pyshell#5>", line 1, in <module>
    str_Free_Busy_Data = obj_Recipient.FreeBusy("11-11-2013", 11)
  File "<COMObject CreateRecipient>", line 4, in FreeBusy
TypeError: an integer is required

所以我的问题是Recipient.FreeBusy()方法有两个强制性参数,开始日期和持续时间。 这里图11是持续时间,其是一个整数。 那么,为什么蟒蛇是不是能够在这里找出整数参数并返回一个类型错误。

请帮我的情况下,我已经做错事(我仍然在Python世界新手)。

提前致谢。

Answer 1:

我在MSDN中查找的方法。

http://msdn.microsoft.com/en-us/library/office/microsoft.office.interop.outlook.recipient.freebusy(v=office.12).aspx

该方法的语法如下3个参数。

string FreeBusy(
DateTime Start,
int MinPerChar,
Object CompleteFormat

问题是,你传递一个字符串日期时间参数。 相反,你需要导入的日期时间库在你的代码,并使用日期参数。

所以,在你的代码的开始,试试这个。

import datetime

#Then declare the my_date variable as datetime.date.

my_date = datetime.date(2013,11,23)
str_Free_Busy_Data = obj_Recipient.FreeBusy(my_date, 11)


Answer 2:

于第一参数FreeBusy是一个Date的对象。 Pywin不会将字符串转换成Date ,但它可以转换pywintypes.Time对象,或表示由于Unix纪元的秒数的整数。 因此,错误:当第一个参数是隐式转换为Time ,构造抱怨说,它需要一个整数。

#start date: 12/31/1969 7:00:00 PM
str_Free_Busy_Data = obj_Recipient.FreeBusy(0, 11)

有许多方法来得到一个日期的Unix时间戳。 见转换蟒蛇日期时间由strftime到划时代 。



文章来源: Retrieving free/busy status from microsoft outlook using python