Python 循环通过一个namedtuple

Python 循环通过一个namedtuple,python,csv,namedtuple,Python,Csv,Namedtuple,我是PythonNoob,但对编程并不陌生。我已经广泛地搜索了StackOverflow,但没有找到答案(或者不明白我找到了什么) 这就是我想做的 从CVS文件(50个字段)中获取信息并放入内存 循环浏览其他来源的信息 在每次迭代中,循环浏览CSV信息,找到我需要的内容,并将其与其他来源的信息一起使用 我想知道如何将CSV信息写入内存,以及如何在另一个循环中循环 谢谢 这就是我走了多远 # -*- coding: UTF-8 -*- import csv from urllib import p

我是PythonNoob,但对编程并不陌生。我已经广泛地搜索了StackOverflow,但没有找到答案(或者不明白我找到了什么)

这就是我想做的

  • 从CVS文件(50个字段)中获取信息并放入内存

  • 循环浏览其他来源的信息

  • 在每次迭代中,循环浏览CSV信息,找到我需要的内容,并将其与其他来源的信息一起使用

  • 我想知道如何将CSV信息写入内存,以及如何在另一个循环中循环

    谢谢

    这就是我走了多远

    # -*- coding: UTF-8 -*-
    import csv
    from urllib import parse
    from collections import namedtuple
    
    # set up namedtuple structure
        ARecord = namedtuple('ArchiveRecord', ['id', 'post_author', 'post_date']) #plus 50 fields
    
    # load csv info to memory 
    with open("site-export.csv",encoding="utf-8") as csvfile:
        r = csv.reader(csvfile, delimiter='|', quotechar='"')
        for arch in map(ARecord._make, r):
            print(arch.id) #print to show that something is happening
    
    # loop that gets info from other source
        # loop through csv info from memory 
            # get field values per row by name
            # do something together with info from both source
    

    您可以使用
    csv.DictReader
    并使用
    fieldnames
    方法将列名放入列表中

    如果这些名称与
    namedtuple
    中的字段名称相同,则可以轻松访问它们


    namedtuple
    可以使用
    \u asdict()
    返回以dict表示的数据,然后您可以通过
    DictReader

    返回的列名访问值。是否要将
    ARecord
    的所有实例都放入列表中?抱歉,我不理解这个问题。我想把所有的CSV信息放在内存中,可以循环使用。我读过No.Dube是最好的方法。@ HananCohen你可以考虑<代码> CSV.DICTROADER :谢谢你AbkajJ这正是我要找的。
    with open("site-export.csv",encoding="utf-8") as csvfile:
        r = csv.reader(csvfile, delimiter='|', quotechar='"')
        csvInfo = [ARecord._make(row) for row in r]
    
    # loop that gets info from other source
        for arch in csvInfo:
            # use information in arch