对于Python 3.4.0
嘿大家, 我有一个csv文件,如下所示:string1;value1
string2;value2
string3;value3
我想要做的是将这个csv文件变成某种&#34;记录&#34;数据类型,以便我可以例如在 stringbig 中查找 stringX ,如果找到 stringX ,则将 +1 添加到 valueX < / em>的
编码的最简单方法是什么?
提前致谢
答案 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'}