【发布时间】:2020-03-25 06:02:55
【问题描述】:
请帮帮我,我有一个 CSV 文件和一个列表。我想获取 CSV 文件标头的值,这些值在我的列表中具有相同的字符串,并将它们匹配到每个字典中,然后将它们放回一个大列表中。
csvFile = open("smallDataFile.csv", 'r')
csvReader = csv.reader(csvFile)
headersList = ['census_tract', 'tow_description', 'longitude']
def read_data(csv_object = csvReader, headers = headersList):
next(csv_object) # To skip the header line
myList = []
myDict = {}
for header in headers:
for row in csv_object:
myDict[header] = row[headers.index(header)]
myList.append(myDict.copy())
print(myList)
read_data()
CSV 文件如下所示:
census_tract,tow_description,longitude
47,ACCIDENT,-78.827175001441
50,STOLEN_VEHICLE,-65.827175001441
我的预期输出是:
[{'census_tract': '47'}, {'tow_description': 'ACCIDENT'}, {'longitude': '-78.827175001441'}, {'census_tract': '50'}, {'tow_description': 'STOLEN_VEHICLE'}, {'longitude': '-65.827175001441'} ]
实际输出是这样的:
[{'census_tract': '47'}, {'census_tract': '50'}]
我的猜测是,由于某种原因,For 循环没有遍历列表中的其余标题。
【问题讨论】: