Python DictReader - 查找是否找不到行中的特定键值

时间:2016-08-10 22:05:45

标签: python csv row

我正在开发一个功能来拉出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)

那么我该如何更改代码?

0 个答案:

没有答案