3

CSVファイルの読み取り。次のリストにヘッダーがない場合は、エラーメッセージを表示したいと思います。csvファイルの少なくとも1つのヘッダーである必要があります。ヘッダーは age sex cityです。私はこのようにしようとしています。ありがとう

with open('data.csv') as f:
  cf = csv.DictReader(f, fieldnames=['city'])
  for row in cf:
    print row['city']
4

2 に答える 2

1

これはどう?

import csv

with open('data.csv', 'rb') as inf:
    cf = csv.reader(inf)

    header = cf.next()
    if header != ['Age', 'Sex', 'City']:
        print "No header found"
    else:
        for row in cf:
            print row[2]
于 2012-05-27T18:58:57.010 に答える
0

質問の私の理解では、ヘッダーが見つかった場合、ヘッダーチェックに合格する必要があります。それ以外の場合は、例外が発生するはずです。

import csv

with open('data.csv','rb') as f:
    fieldnames = ['age','sex','city']
    cf = csv.DictReader(f)
    headers = cf.fieldnames

    if len(set(fieldnames).intersection(set(headers))) == 0:
        raise csv.Error("CSV Error: Invalid headers: %s" % str(headers))

    for row in cf:
        city = row['city'] if 'city' in headers else "N/A"
        sex = row['sex'] if 'sex' in headers else "N/A"
        age = row['age'] if 'age' in headers else "N/A"
        print "city: " + city + ", sex: " + sex + ", age: " + age
于 2012-07-04T22:24:06.873 に答える