объект ‘datetime.date’ не вызывается, если он назначен дважды в переменной

#python #selenium #datetime #url #callable

#python #селен #datetime #url #вызываемый

Вопрос:

У меня есть приведенный ниже код, и по какой-то причине я не могу

lastMonthEnd.strftime("%d") , lastMonthEnd.strftime("%b") and lastMonthEnd.strftime("%Y") дважды в переменной.

Я объявляю переменные времени.

 
today = date.today()
first = today.replace(day=1)
lastMonthEnd = first    dateutil.relativedelta.relativedelta(days=-1)

lastQuaterBegin = first   dateutil.relativedelta.relativedelta(months=-3)
lastMonthBegin = first   dateutil.relativedelta.relativedelta(months=-1)
  

Я получаю первый URL-адрес без каких-либо проблем

 # Get Pamp;L monthly
    plUrl = "https://go.xero.com/Reports/Report2.aspx?"
                "reportId=ca205001-1651-4947-bf95-9b1436926f09amp;report=amp;statement"
                "=a22c12ce-7b22-49ff-a674-1a509552f6deamp;attPage=Compare Periodsamp;"
                "date=" lastMonthEnd.strftime("%d") " " lastMonthEnd.strftime("%b") " " lastMonthEnd.strftime("%Y") 
                "amp;timeframe=1amp;periods=3amp;budgetID= amp;total=nullamp;ytd=nullamp;"
                "amp;CompareDateRangePeriods=1amp;sortByForAccount=FormattedNameamp;cashOnly=null"
               
    driver.get(plUrl)
  

Однако, когда я запускаю приведенный ниже код, где у меня lastMonthEnd.strftime("%d") , lastMonthEnd.strftime("%b") and lastMonthEnd.strftime("%Y") дважды в URL-адресе, я получаю

Файл «XXX», строка 145, в модуле «toDate=» lastMonthEnd.strftime(«%d») » » lastMonthEnd.strftime(«%b») » » lastMonthEnd.strftime(«%Y») «amp;»

Ошибка типа: объект ‘datetime.date’ не вызывается

ошибка.

 plUrl = "https://go.xero.com/Reports/Report2.aspx?reportId=ca205001-1651-4947-bf95-9b1436926f09amp;report=amp;"
                "statement=a22c12ce-7b22-49ff-a674-1a509552f6deamp;attPage=Show Date Rangeamp;"
                "date=" lastMonthEnd.strftime("%d") " " lastMonthEnd.strftime("%b") " " lastMonthEnd.strftime("%Y") "amp;"
                "timeframe=1amp;periods=3amp;budgetID= amp;total=nullamp;ytd=nullamp;"
                "fromDate=" lastQuaterBegin("%d") " " lastQuaterBegin("%b") " " lastQuaterBegin("%Y") "amp;"
                "toDate=" lastMonthEnd.strftime("%d") " " lastMonthEnd.strftime("%b") " " lastMonthEnd.strftime("%Y") "amp;"
                "CompareDateRangePeriod=noneamp;CompareDateRangePeriods=1amp;sortByForAccount=FormattedNameamp;cashOnly=null"
                            
    driver.get(plUrl)
  

Кто-нибудь может помочь, как обойти это?

Комментарии:

1. вы забыли strftime , что он должен, например, быть lastQuaterBegin.strftime("%d")

2. Спасибо за подсказку. Я использую обходной путь для темы выше.

Ответ №1:

Похоже, вы забыли добавить .strftime некоторые из ваших DateTime объектов.

Счастливого кодирования, Breadberry

Комментарии:

1. Спасибо за подсказку. Я использую обходной путь для темы выше.