python - 将 CSV 条目转换为元组列表而不更改数据类型
问题描述
我的 CSV 条目如下:
1500, 'data', '10.10.10.1', 2.0, 1
1501, 'header', '10.10.10.14', 2.1, 0
...
我想以这种方式将它加载到我的程序中:
[(1500, 'data', '10.10.10.1', 2.0, 1), (1501, 'header', '10.10.10.14', 2.1, 0), ...]
我正在尝试对数百万条记录执行此操作,因此拆分每一行并转换为所需的数据类型似乎很乏味。
有什么建议吗?
我尝试使用 csv 库,但这只是将整个内容转换为字符串。Pandas 也没有将其作为元组加载。
解决方案
CSV 库没有进行任何转换,文件是一个字符串。由脚本根据需要转换每个值。例如:
import csv
with open("input.csv", "r", newline="") as f_in:
csv_in = csv.reader(f_in, quotechar="'", skipinitialspace=True) # Single quote rather than default double quote
data = [(int(row[0]), *row[1:3], float(row[3]), int(row[4])) for row in csv_in]
print(data)
这将显示您的元组如下:
[(1500, 'data', '10.10.10.1', 2.0, 1), (1501, 'header', '10.10.10.14', 2.1, 0)]
推荐阅读
- sql - postgres 错误:将负数提高到非整数幂会产生复杂的结果
- spring-boot - 如何使用 Spring JPA 在 DB 中插入/更新本机查询?
- azure - 主 VM 集重新启动时故障转移如何工作?
- google-maps - Ionic 3 Google 地图 - 地图不显示在 Android 上
- python-3.x - Matplotlib Annotation Error
- android - 从最近的应用程序中删除时不要杀死应用程序
- javascript - 电子商务项目语言和框架指南
- c# - 如果光标在位置
- javascript -
- python - 在openCV中使用鼠标动态绘制圆圈