Python 将CSV文件转换为类型化元组
我是一名java程序员,刚刚开始学习python。我的第一个任务对我来说真的很奇怪,我不知道如何处理它。我们收到一个csv文件,要求读取csv文件并返回表示数据的元组列表,对每个字段进行如下转换:Python 将CSV文件转换为类型化元组,python,csv,Python,Csv,我是一名java程序员,刚刚开始学习python。我的第一个任务对我来说真的很奇怪,我不知道如何处理它。我们收到一个csv文件,要求读取csv文件并返回表示数据的元组列表,对每个字段进行如下转换: # date: class date (see datetime module) # mileage: integer # location: string # gallons: float # cost: float # Do not re
# date: class date (see datetime module)
# mileage: integer
# location: string
# gallons: float
# cost: float
# Do not return a tuple for the header row. While you can process the rawtext using string
# functions, to receive full credit you must use Python's built in csv module.
我真的不知道从哪里开始,虽然我想我已经知道了如何读取csv文件。
这就是我目前所拥有的
rows = []
with open(file_name) as f:
rows=[tuple(line) for line in csv.reader(f)]
return rows
编辑:添加我的csv文件。
您可以迭代生成的元组列表,根据需要转换每个值,并将其附加到新的最终列表中。或者,您可以在遍历文件的行时立即执行此操作:
import csv
from datetime import datetime
data=[]
with open('mustard_data.csv') as csv_file:
csv_reader = csv.reader(csv_file, delimiter=',')
line_count = 0
for line in csv_reader:
# Ignore the header row
if line_count == 0:
line_count += 1
continue
else:
# Ignore lines with missing values (or handle them otherwise if required)
if '' not in line:
# Convert as appropriate
datetime_object = datetime.strptime(line[0], '%m/%d/%Y').date()
mileage = int(line[1])
loc = line[2]
gallons = float(line[3])
cost = float(line[4].strip('$'))
data.append((datetime_object, mileage, loc, gallons, cost))
您是否可以包含csv文件的一个示例?您希望该示例文件的输出是什么?似乎文件的每一行都有5列-您需要将每一列转换为其指定的类型(日期、整数、字符串(无需转换)、浮点、浮点),并用这些解析/转换的值创建一个元组。将元组添加到列表中。你的问题在哪里?您当前只读取字符串并按原样处理-您不需要转换任何内容您需要执行的主要任务…查看并阅读有关strtime的信息,以将字符串转换为日期