python - Python - 检查字典中的所有键值对并转换为 int 或 float
问题描述
假设我有一个这样的字典:
[{'Chr': 'chrX', 'Start': '107844640', 'End': '107844640'}]
几乎所有的键值都是字符串,不是全部,而是几乎(我不知道为什么)。
我想检查所有键值并仅在字符串包含数字时才将其转换strings
为。应该是 a ,应该保持 a和 '123' 应该是 a 。int or float
'10.020'
float
'10.020abc'
string
int
这是期望的结果:
[{'Chr': 'chrX', 'Start': 107844640, 'End': 107844640}]
我在 JavaScript 中用Number()
.
有什么pythonic方法可以实现吗?
解决方案
创建一个很好的小函数来解析键/值:
def try_convert(x):
try:
return int(x)
except ValueError:
pass
try:
return float(x)
except ValueError:
return x
现在使用它!对于一些字典d
,
d = {try_convert(k): try_convert(v) for k, v in d.items()}
推荐阅读
- sql-server - 从 SQL Server 获取 SOAP Web 服务 gzip 编码响应
- jquery - 通过 jquery 获取选定的订单类型
- excel - 在 PowerPoint 中对齐 Excel 表格
- java - 如何在 Java 中获取 JFrame 的子子组件
- angular - 无法使用 pdfmake 在 pdf 文档中显示本地图像
- reactjs - React Native 应用程序中的“模块”文件夹有什么作用
- android - 如何绕过 Firebase 缓存刷新数据?
- python - 在异常检测自动编码器中使用哪种损失函数以及选择哪种输出形状?
- python - python套接字连接检测
- python - 使用 OpenCV 和 Python 提高视频的捕获和流传输速度