当我使用行中有空格的列名时,脚本不会打印任何内容,但是如果我使用没有空格的列名,则脚本会打印结果。如何在空格中使用标题?
#!/usr/bin/python
import csv
import os
import fnmatch
rootdir = '/var/www/html/storage/DATA/'
pattern = 'file**.csv'
for root, dirs, files in os.walk(rootdir):
for filename in fnmatch.filter(files,pattern):
path = os.path.join(root, filename)
with open(path) as f:
reader = csv.DictReader(f)
for row in reader:
#if row['newColor'] == 'blue': #This works.
if row['cid number'] == '998': #This does not work.
print(row['oldColor'])
Sample Data
market brand type newColor oldColor cid number length
SFO 6754 x blue orange 998 6
CHI 6754 x green black 932 6
ATL 6766 x blue yellow 822 6
答案 0 :(得分:1)
如果你的csv文件是用逗号分隔的(你说它是),那么它应该是这样的:
market,brand,type,newColor,oldColor,cid number,length
SFO,6754,x,blue,orange,998,6
CHI,6754,x,green,black,932,6
ATL,6766,x,blue,yellow,822,6
如果是这种情况,那么您的代码应该按原样运行(假设缩进是正确的)。如果您的csv看起来像您粘贴的内容(即由空格分隔),则cid number
会被视为两个单独的列cid
和number
。
我会打印出for row in reader
循环中的每一行以确认字典的键