【发布时间】:2013-05-14 12:50:59
【问题描述】:
背景:
我在尝试搜索某些 CSV 文件时遇到问题。
我浏览了 python 文档:http://docs.python.org/2/library/csv.html
关于 csv 模块的csv.DictReader(csvfile, fieldnames=None, restkey=None, restval=None, dialect='excel', *args, **kwds) 对象。
我的理解是csv.DictReader 假定文件的第一行/第一行是字段名,但是,我的 csv 字典文件只是以“key”、“value”开头并持续至少 500,000 行。
我的程序将询问用户他们正在寻找的标题(因此是键),并使用打印功能将值(即第二列)显示到屏幕上。我的问题是如何使用 csv.dictreader 搜索特定键,并打印其值。
样本数据: 以下是 csv 文件及其内容的示例...
"Mamer","285713:13"
"Champhol","461034:2"
"Station Palais","972811:0"
所以如果我想找到“Station Palais”(输入),我的输出将是 972811:0。我能够操作字符串并创建整个程序,我只需要 csv.dictreader 的帮助。感谢任何帮助。
编辑部分:
import csv
def main():
with open('anchor_summary2.csv', 'rb') as file_data:
list_of_stuff = []
reader = csv.DictReader(file_data, ("title", "value"))
for i in reader:
list_of_stuff.append(i)
print list_of_stuff
main()
【问题讨论】:
-
我认为您正在错误地考虑 DictReader。 DictReader 将第一行的每一列中的值作为键,并且在它读取的每一行上,可以通过键名而不是列号来访问列。是在寻找访问单个值的最佳方式,还是要访问许多随机放置的值?
-
我的程序需要遍历 csv 文件,查找我为该特定迭代提供的密钥,并打印出它的值。整个文件将始终只是 2 列(键、值)。你是这个意思吗?如果有比 DictReader 更好的选择,那也欢迎。
标签: csv python-2.7 dictionary