【问题标题】:Iterating through DictReader遍历 DictReader
【发布时间】:2014-03-01 05:53:57
【问题描述】:

我已经阅读了一个 csv 文件,

with open('test.csv', newline='') as csv_file:
        #restval = blank columns = - /// restkey = extra columns +
        d = csv.DictReader(csv_file, fieldnames=None, restkey='+', restval='-', delimiter=',', quotechar='"')

我想遍历创建的字典以在 csv 中查找空白值。 我试过了:

for k, v in d.items()
#Do stuff

但是我得到了错误:AttributeError: 'DictReader' object has no attribute 'items'

d中存储的值是字典的字典对吗?

来自 C#,我会将 csv 存储在一个多维数组中,并使用嵌套的 for 循环来迭代这些值。不幸的是,我对 Python 还是很陌生 - 任何帮助和解释都将不胜感激!

【问题讨论】:

    标签: python loops csv dictionary


    【解决方案1】:

    DictReader() 生成一个字典序列,而不仅仅是一个字典。

    for row in d:
        for k, v in row.items():
    

    【讨论】:

      【解决方案2】:

      你必须先遍历 dict 获取每一行,然后遍历每一行中的项目:

      for row in d:
          for k, v in row.items():
              # Do stuff
      

      【讨论】:

        【解决方案3】:

        我们也可以试试:

        with open('test.csv', newline='') as csv_file:
                #restval = blank columns = - /// restkey = extra columns +
                d = csv.DictReader(csv_file, fieldnames=None, restkey='+', restval='-', delimiter=',', quotechar='"')
                data = list(d)
        
        for row in data:
                for key,val in row.items():
                        print(key)
                        print(val)
        

        【讨论】:

          猜你喜欢
          • 2015-05-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-10-05
          • 2018-07-15
          • 2014-01-23
          • 2018-11-03
          相关资源
          最近更新 更多