您可以将^{}与默认值一起使用。在
如果找不到idx索引等于value或{},则返回第一行:import csv
def find_by_position(filename, idx, value):
with open(filename) as f:
reader = csv.reader(f)
row = next((item for item in reader if item[idx] == value), None)
return row
示例用法:
^{pr2}$
更具描述性的方法是使用^{},这样我们就可以根据列名进行搜索:import csv
def find_by_column(filename, column, value):
with open(filename) as f:
reader = csv.DictReader(f)
row = next((item for item in reader if item[column] == value), None)
return row
用法与前面的方法非常相似:>>> # `data/data.csv` looks like this:
... #
... # id,name,score
... # 1,bla,65
... # 5,another name,95
... # 9,test,95
...
>>> find_by_column('data/data.csv', 'id', '5')
OrderedDict([('id', '5'), ('name', 'another name'), ('score', '95')])
>>> find_by_column('data/data.csv', 'name', 'bla')
OrderedDict([('id', '1'), ('name', 'bla'), ('score', '65')])