使用字段名提取数据

时间:2016-01-26 22:21:22

标签: python csv

我使用以下方法从CSV数据文件中解析并提取了行和字段名称。

with open("log.txt","w") as f, Tracker(f):
    response=self.admin_client.post(url, post)
    self.assertEqual(200, response.status_code, trace)

如何使用fieldname访问任何行中的已解析数据?例如,字段名可以是reader = csv.DictReader(open('Sourcefile.txt','rt'), delimiter = '\t') fn = reader.fieldnames AABBCC。如何获取第5行中的DD或第3行中的DD的值?

2 个答案:

答案 0 :(得分:2)

只要文件不是太大,只需将阅读器转换为列表:

data = list(reader)

现在访问第1行中的AA列:

data[0]['AA']

或第3行中字段名称3的列:

data[2][fn[2]]

答案 1 :(得分:0)

一种简单的方法是将文件中的所有数据存储到容器中。另一个答案的替代方法是使用pandas数据帧:

>>import pandas as pd
>>from io import StringIO  # just to make a fake in memory file
>>s = StringIO('AA\tBB\tCC\tDD\n1\t2\t3\t4\n11\t12\t13\t14\n') # fake data
>>data = pd.read_table(s)
>>data.loc[0,'AA']  # access row 0 (the first row) and column AA
1

编辑:这确实使用了标准库中未包含的不同包,但是当我经常阅读和操作csv文件时,我经常发现使用pandas比使用csv更容易。