我正在开发一个功能来拉出CSV特定的行。每个CSV行都有一个唯一的ID,用于标识该函数。缺少一些ID。我想在迭代这些无效ID后以某种方式找到。
示例:
(示例CSV db_short.csv包含第1-52行,然后是第99行)
import csv
def get_row(csvfile, row_id):
with open(csvfile, 'rb') as csvfile:
newfile = csv.DictReader(csvfile, delimiter=',', quotechar='|')
somevalue = 'default'
for row in newfile:
if row['id'] == str(row_id):
somevalue = 'id = {}'.format(row['id'])
else:
pass
return somevalue
db = "db_short.csv"
flatlist = [1, 18, 42, 51, 53, 99]
new_entries = []
for i in flatlist:
new_entries.append(get_row(db, i))
print new_entries
请注意,平面列表包含故意丢失的ID 53.此代码可预测产生输出,其中搜索“id”:53'返回“default”。
['id = 1', 'id = 18', 'id = 42', 'id = 51', 'default', 'id = 99']
然而,我想用一个自定义消息替换somevalue ='default',警告丢失的ID,只有当DictReader通过整个CSV并且没有找到任何包含'id'的行时才会出现: '53' - 。
somevalue = '{} id missing!'.format(row_id)
那么我该如何更改代码?