Reading in csv file and converting to python in uppercase

I’m trying to read in a csv file using the csv library. I’m attempting to iterate through each line but convert to upper case before I attempt some useful function with each line.

import csv
reader = csv.DictReader(open('sample.csv', 'rb'))
for line in reader:
    line = line.upper()
    name = line['Name']

The above code doesn’t appear to work. It fails when I attempt to convert the line read in to upper. I can change each column of the csv file read in to upper individually (using dictionary key) but I want to avoid that since there are lots of keys in the dictionary.

You can pre-process each line from the file object using a generator expression, before passing them to csv.DictReader
which returns an iterable of dicts:

with open('sample.csv', 'rb') as f:
    header = next(f).strip().split(',')
    reader = csv.DictReader((l.upper() for l in f), fieldnames=header)
    for line in reader:
        name = line['Name']

Demo:

>>> f = ['a,b', 'c,d']
>>> c = csv.DictReader((l.upper() for l in f), fieldnames=('h1', 'h2'))
>>> list(c)
[{'h2': 'B', 'h1': 'A'}, {'h2': 'D', 'h1': 'C'}]
Hello, buddy!责编内容来自:Hello, buddy! (源链) | 更多关于

阅读提示:酷辣虫无法对本内容的真实性提供任何保证,请自行验证并承担相关的风险与后果!
本站遵循[CC BY-NC-SA 4.0]。如您有版权、意见投诉等问题,请通过eMail联系我们处理。
酷辣虫 » 综合编程 » Reading in csv file and converting to python in uppercase

喜欢 (0)or分享给?

专业 x 专注 x 聚合 x 分享 CC BY-NC-SA 4.0

使用声明 | 英豪名录