遍历命名元组
Looping through a namedtuple
我是 Python 菜鸟,但对编程并不陌生。我广泛搜索了 Whosebug,但没有找到答案(或者不明白我找到了什么)。
这就是我想做的
从 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
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
您可以使用 csv.DictReader
和 fieldnames
方法,您可以将列名放入列表中。
如果这些名称与您 namedtuple
中的字段名称相同,那么您可以轻松访问它们。
namedtuple
可以 return 使用 _asdict()
将其数据表示为字典,然后您可以通过 return 编辑的列名访问值15=].
我是 Python 菜鸟,但对编程并不陌生。我广泛搜索了 Whosebug,但没有找到答案(或者不明白我找到了什么)。
这就是我想做的
从 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
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
您可以使用 csv.DictReader
和 fieldnames
方法,您可以将列名放入列表中。
如果这些名称与您 namedtuple
中的字段名称相同,那么您可以轻松访问它们。
namedtuple
可以 return 使用 _asdict()
将其数据表示为字典,然后您可以通过 return 编辑的列名访问值15=].