我的学校给了我这段代码和csv文件(此处未包括)以“探索”。在探索这一过程中,我发现了一些我想问的问题。我的代码下方是运行该程序时的打印输出。如果您注意到,在导入语句之后立即有一个空白的LIST开头。但是,该程序的打印输出似乎是字典格式的,带有键和对值。我仍在尝试找出两者之间的差异。我认为程序显示数据的方式与导入逗号分隔值文件有关。但是我仍然不完全了解一切如何协同工作以获得最终结果。总而言之,我想了解在这种情况下像字典一样打印出空白列表的方式和原因。
我想问的第二件事是仅打印“名称”值的整个列表的正确方法。这实际上适用于任何键,因为如果我不加任何限制地打印“数据”,那是一个巨大的系统崩溃数据块,一直试图连续加载10分钟。因此,我想在循环中合并以为每个索引点打印出每个“名称”值。因此,类似于“ print(data [counter] [“ Name”]))“,其递增计数器变量在每次打印后都会增加一个索引。但是当我自己尝试这样做时,我无法使其正常工作。底部的注释代码只是学校在其中放置的示例,但这正是我发布的打印结果的结果。
import csv
import re
data = []
with open('customerData.csv') as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
data.append(row)
print(data[0])
print(data[1]["Name"])
print(data[2]["Spent Past 30 Days"])
输出:
{'Member Date': '26/2/2012', 'Zip': '61309', 'Purchases Past 30 Days': '2', 'SSN': '544-48-7885', 'Purchases Past 12 Months': '8', 'Spent Past 12 Months': '$6030.52', 'State': 'WV', 'Spent Past 30 Days': '$943.9000000000001', 'Phone': '(581) 372-8004', 'Gender': 'male', 'Name': 'Steve Bryan', 'Email': 's.Bryan@ru.gov', 'Favorite Radio Station': 'WATT', 'Credit Card_Number': '3491xxxxxxx1481', 'Spent Past 6 Months': '$2099.83', 'Credit Card': 'American Express', 'Credit Card Exp': '02/17', 'Purchases Past 6 Months': '3'}
Dr. Adam Taylor
$3797.13
答案 0 :(得分:1)
csv.DictReader
将CSV文件的每一行作为字典返回,其键为CSV第一行的列标题,其值等于该行的列。
这些词典被附加到data
列表中,因此您拥有的是词典列表。
data[0]
将返回列表的第一个字典。
data[1]['Name']
将返回CSV中第二个数据行的Name
列中的值。