如何将csv文件读成"记录"数据类型?

时间:2015-11-01 21:24:07

标签: python csv python-3.x

对于Python 3.4.0

嘿大家, 我有一个csv文件,如下所示:

string1;value1
string2;value2
string3;value3

我想要做的是将这个csv文件变成某种&#34;记录&#34;数据类型,以便我可以例如在 stringbig 中查找 stringX ,如果找到 stringX ,则将 +1 添加到 valueX < / em>的

编码的最简单方法是什么?

提前致谢

3 个答案:

答案 0 :(得分:0)

您可以将行设置为namedtuple。这是一个简单的例子:

import csv
from collections import namedtuple

Record = namedtuple('Record', ['product', 'part_number', 'category'])

mydict = defaultdict(dict)
with open('inventory.csv', 'rb') as inf:
    for rec in map(Record._make, csv.reader(inf)):
        print(rec.part_number)

答案 1 :(得分:0)

你可以使用内置的csv模块和一个简单的python字典:

import csv 

records = {}
with open('/path/to/your/file.csv','rb') as fileobj:
    reader = csv.reader(fileobj, delimiter=';')
    for key, value in reader:
        records[key] = int(value)

然后,您可以通过执行以下操作轻松更新valueX stringX

records[stringX] = records.get(stringX, 0) + 1

答案 2 :(得分:0)

You can use DictReader for that
Name;Value
string1;0
string2;20
string3;12

import csv
with open("data.csv", 'r') as f:
    r = csv.DictReader(f, delimiter=';')
    for row in r:
      if 'string2' in row['Name']:
          row['Value'] += 1
          print(row)

{'Value': 21, 'Name': 'string2'}