我正在使用csv.dictreader返回数据行中为'True'的csv文件列表中的所有股票。
filename = glob.glob('*.csv')
susadict = {}
for file in filename:
with open(file, 'rb') as csvfile:
reader = csv.DictReader(csvfile)
susadict[file] = [row['Ticker'] for row in reader if row['Data'] == 'True']
此代码仅适用于最后一行中带有“”字符的csv文件,但对于具有“åÊ”或无字符的文件不起作用,截至目前我的11个文件中只有2个具有“”字段,所以它留下9空白。
我的预期输出是全部11个工作。
答案 0 :(得分:0)
问题:但方言中有什么=,我有dialect = csv.Sniffer()
按照给定链接中的示例进行操作:csv.Sniffer
.seek(0)
之后的Sniffer
是绝对必要的!
您可以使用以下其中一种,两者都是等效的:
reader = csv.DictReader(csvfile, dialect)
reader = csv.DictReader(csvfile, dialect=dialect)
您的整个示例应该看起来:
filename = glob.glob('*.csv')
susadict = {}
for file in filename:
# Python 3.x: with open(file) as csvfile:
with open(file, 'rb') as csvfile:
dialect = csv.Sniffer().sniff(csvfile.read(1024))
csvfile.seek(0)
reader = csv.DictReader(csvfile, dialect)
susadict[file] = [row['Ticker'] for row in reader if row['Data'] == 'True']
使用Python测试:3.4.2和Python:2.7.9 - csv:1.0