python – ValueError:无法在字典中将字符串转换为float
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – ValueError:无法在字典中将字符串转换为float,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1132字,纯文字阅读大概需要2分钟。
内容图文
我正在将每周值的长字典转换为月值.
这是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'}
但是在一个词典中显然有一个我无法转换为float的值,所以我收到这个非常恼人的消息:
ValueError: could not convert string to float
我的问题是:
a)有没有办法可以跟踪字典中的错误项目以更好地了解发生了什么?
b)有没有办法可以将“if语句”转换为“try语句”,使其通过任何错误?
解决方法:
几个sugestions.
首先,使用defaultdict保存对密钥的初始检查.其次,使用try转换为float,如果不是float,则返回None.
每当遇到None时,将其保存到列表中.
from collections import defaultdict
def convert_float(x):
try:
return float(x)
except:
return None
monthlydic = defaultdict(float)
problems = []
for key in weeklydic:
k = key[0:7]
val = convert_float(weeklydic[key])
if val is not None:
monthlydic[k] += val
else:
problems.append((k, weeklydic[key]))
内容总结
以上是互联网集市为您收集整理的python – ValueError:无法在字典中将字符串转换为float全部内容,希望文章能够帮你解决python – ValueError:无法在字典中将字符串转换为float所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。