【发布时间】:2017-01-12 12:23:23
【问题描述】:
我是 Python 菜鸟,但对编程并不陌生。我已经广泛搜索了 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
【问题讨论】:
-
你想把你所有的
ARecord实例放到一个列表中吗? -
对不起,我不明白这个问题。我想把所有的 CSV 信息放到内存中可以循环的东西中。我已经读过,namedtuple 是最好的方法。
-
@HananCohen 你可以考虑
csv.DictReader:docs.python.org/2/library/csv.html#csv.DictReader
标签: python csv namedtuple