Я конвертирую длинный словарь недельных значений в ежемесячные значения.ValueError: не удалось преобразовать строку в float в словаре
Вот небольшой образец Dict:
weeklydic={'2007-10-21': '56', '2007-10-28': '58', '2011-07-10': '56', '2011-07-16': '56'}
Я использую этот код, чтобы суммировать недельные значения одного и того же месяца:
monthlydic = {}
for key in weeklydic:
k = key[0:7]
if (k in weeklydic):
monthlydic[k] += float(weeklydic[key])
else:
monthlydic[k] = float(weeklydic[key])
В целом работает нормально, в этом небольшом образце он должен вернуться
monthlydic={'2007-10': '114', '2011-07': '112'}
Однако в одном словаре, по-видимому, есть значение, которое я Nnot конвертировать плавать, так что я получаю это очень раздражает сообщение:
ValueError: could not convert string to float
Мои вопросы:
а) Есть ли способ я могу отслеживать неправильный пункт словаря, чтобы лучше понять, что такое происходит?
b) Есть ли способ, которым я могу преобразовать этот оператор «if» в «инструкцию try» таким образом, чтобы он прошел какие-либо ошибки?
Я просто запустил то, что вы разместили, и оно не возвращает то, что у вас есть в вашем образце. Во-первых, значения в вашем 'monhtlydic' являются строками ... В любом случае, я думаю, вы имели в виду' if k в monthdic: ' –