【问题标题】:How to print out section of dictionary如何打印出字典的部分
【发布时间】:2019-03-20 01:18:30
【问题描述】:

我的学校给了我这个代码和 csv 文件(这里不包括)来“探索”。在探索这个的过程中,我发现了一些我想问的事情。一,我的代码下面是我运行该程序时的打印输出。如果您注意到,在 import 语句之后会出现一个空白 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

【问题讨论】:

    标签: list csv dictionary import


    【解决方案1】:

    csv.DictReader 将 CSV 文件的每一行作为字典返回,其中键是 CSV 第一行的列标题,值等于该行的列。

    这些词典被附加到data 列表中,因此您拥有的是一个词典列表。

    data[0] 将返回列表的第一个字典。
    data[1]['Name'] 将返回 CSV 中第二个数据行的 Name 列中的值。

    【讨论】:

    • 很高兴知道。我以前没有注意到这种方法,而且我以前从未接触过它,所以这对我来说是新的。谢谢。
    • @Toph 不客气。如果答案有用,请考虑投票和/或接受答案。
    • 是的,我正等着看第二部分的答案,但你做得很好,我可以把它分成另一个帖子。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-07
    • 2017-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多