2014-09-09 2 views
3

저는 파이썬에 매우 익숙하며 작은 문제를 겪었습니다. 인터넷 검색으로 답을 찾을 수 없었습니다. 다음 코드를 실행하고 있습니다 :python dateutil relativedelta 값에 액세스하기

from dateutil import relativedelta as rdelta 
def diff_dates(date1, date2): 
    return rdelta.relativedelta(date1,date2) 

d1d2는 내가 기대하고있어 정확한 값은 두 개의 분리 된 날짜

years = diff_dates(d2,d1) 

print "Years: ", years 

년 위해 밖으로 인쇄되는 값이다. 내 문제는 그 값에 액세스하고 다른 값과 비교해야한다는 것입니다. 나는이 년, 월, 일을 얻을 필요하고 도움을 크게 감상 할 수

AttributeError: relativedelta instance has no __call__ method 

: 아무리 데이터에 액세스하려고 어떻게 유사한 오류를 얻을.

답변

3

years으로 전화를 걸면받는 모든 정보가 내부에 있습니다. 그 객체는 원하는 값을 속성으로 가지고 있습니다 :

In [12]: d = rdelta.relativedelta(datetime.datetime(1998, 10, 20, 1, 2, 3), datetime.datetime(2001, 5, 3, 3, 4, 5)) 

In [13]: d 
Out[13]: relativedelta(years=-2, months=-6, days=-14, hours=-2, minutes=-2, seconds=-2) 

In [14]: d.years 
Out[14]: -2 

In [15]: d.months 
Out[15]: -6 
관련 문제