【问题标题】:Appending CSV rows to dictionary is only allowing a certain amount of items to dictionary将 CSV 行附加到字典只允许一定数量的项目到字典
【发布时间】:2019-02-05 23:34:34
【问题描述】:

我正在从包含大约 14k 行的 csv 文件创建字典。 将行附加到数组可以找到它附加所有行。 但是当我试图附加到我想要的字典时,它只附加了 55 个项目。我不确定为什么会这样。位置是字符串,数字是字符串整数。

import csv

dictionary = {} #Length of dictionary is only 55
location = [] #Length of location and number is 13,792
number = []

with open('C:/Users/././.csv') as c:
    csvReader = csv.reader(c, delimiter=',')
    for row in csvReader:
        location.append(row[3])
        number.append(row[11])
        dictionary[row[3]] = row[11]

【问题讨论】:

    标签: python list csv dictionary


    【解决方案1】:

    字典键是唯一的,通过为现有键分配新值,它会覆盖键的先前值。由于您很可能只有 55 个唯一位置并且每个位置有多个数字,因此您可以使用列表的 dict 作为数据结构:

    for row in csvReader:
        dictionary.setdefault(row[3], []).append(row[11])
    

    【讨论】:

      【解决方案2】:

      字典的键必须是唯一的。因此,最可能的原因是您在locations 中有重复值。

      要对此进行测试,请使用print(len(set(location)))。我怀疑它会打印55

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-08-22
        • 2012-09-26
        • 2023-02-24
        • 2023-03-19
        • 2012-02-14
        • 2018-12-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多