python how to trim trailing spaces in csv DictReader keys
我使用的是python(2.6)csv听写器。我的输入文件有一个标题行,其中列名称带有尾随空格:
1 2 | colname1, colname2 ,col3, etc. XX, YY, ZZ |
返回的dict对象的key()=
是否可以从键中修剪前导空格和尾随空格?
--编辑
按键名处理时出现问题:
1 2 3 4 | with open(fname) as f: r = csv.DictReader(f) for row in r: print"processing", r["column1"], r["column2"] |
这些文件是数据库转储。dump程序太聪明了——它根据数据调整输出列宽——这意味着不同的选择集将具有不同的列宽和不同的键长度。有时我必须使用
只需手动读取第一行并将其传递给
1 2 3 | with open('file.csv') as fh: header = [h.strip() for h in fh.next().split(',')] reader = csv.DictReader(fh, fieldnames=header) |
您需要在csv模块中注册自定义方言
1 2 | csv.register_dialect('MyDialect', quotechar='"', skipinitialspace=True, quoting=csv.QUOTE_NONE, lineterminator=' ', strict=True) |
然后在创建听写器时使用方言:
1 | my_reader = csv.DictReader(trip_file, dialect='MyDialect') |
以下是所有方言选项