Python 将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

我是一名java程序员,刚刚开始学习python。我的第一个任务对我来说真的很奇怪,我不知道如何处理它。我们收到一个csv文件,要求读取csv文件并返回表示数据的元组列表,对每个字段进行如下转换:

#      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的信息,以将字符串转换为日期