Приветствую уважаемое сообщество.
Краткая суть проблемы:
Python 2.7.8
В программе строка:
currentdict=eval(line) line читается из файла.
как правило строка следующего вида:
“{'reportname':'AServices2-list1', ‘path’:'/Services?Statistics Object/Categories?ServiceObject', ‘startdate’:datetime(2014, 12, 01, 0), ‘enddate’:datetime(2014, 12, 01, 0), ‘period’:dict(hours=1)}”
Сегодня попалась следующая строка: "{'reportname':'AServices2-list1', ‘path’:'/Services?Statistics Object/Categories?ServiceObject', ‘startdate’:datetime(2014, 12, 01, 0), ‘enddate’:datetime(2014, 12, 08, 0), ‘period’:dict(hours=1)}“
Выдало вот такую ошибку:
Traceback (most recent call last):
File ”<pyshell#3>“, line 1, in <module>
eval(”{'reportname':'AServices2-list1', ‘path’:'/Services?Statistics Object/Categories?ServiceObject', ‘startdate’:datetime(2014, 12, 01, 0), ‘enddate’:datetime(2014, 12, 08, 0), ‘period’:dict(hours=1)}“)
File ”<string>“, line 1
{'reportname':'AServices2-list1', ‘path’:'/Services?Statistics Object/Categories?ServiceObject', ‘startdate’:datetime(2014, 12, 01, 0), ‘enddate’:datetime(2014, 12, 08, 0), ‘period’:dict(hours=1)}
^
SyntaxError: invalid token
стрелочка в точности над выделенной цифрой.
помучавшись с отладчиком открыл IDLE и попробовал выполнить следующий код:
from datetime import date, datetime, timedelta
eval(”{'reportname':'AServices2-list1', ‘path’:'/Services?Statistics Object/Categories?ServiceObject', ‘startdate’:datetime(2014, 12, 01, 0), ‘enddate’:datetime(2014, 12, 08, 0), ‘period’:dict(hours=1)}“)
когда в выделенной части ”08“ или ”09" - дает ошибку invalid token. При остальных значениях создает словарь (как и задумывалось).
Попробовал вверсии 3.4.1: invalid token в строке datetime(2014, 12, 01, 0) при любых значениях.
Опыт работы в Python 3 месяца. Ошибка даже не злит, приводит в недоумение