2010-02-28 104 views
0

试图读取头与一个CSV文件:蟒蛇CSV标题错误

reader = csv.DictReader(open(PATH_FILE),skipinitialspace=True) 
headers = reader.fieldnames 

for header in sorted(set(headers)): 

它的工作发展服务器上,投在生产这个错误

'NoneType' object is not iterable 

调试可以显示页眉有而没有价值csv文件中有标题。

headers:None 

回答

2

csvreader.fieldnames documentation

如果创建对象时没有作为参数传递,这个属性是在第一次访问初始化或者当第一个记录是从文件中读取

因此,请尝试读取文件的第一行,然后reader.fieldnames应包含您需要的数据。也许像添加reader.next()

reader = csv.DictReader(open(PATH_FILE),skipinitialspace=True) 
reader.next() 
headers = reader.fieldnames 

的文件也说:

改变在2.6版本。

因此,这种行为差异可能是由于您的两个系统之间的Python版本不同。

1

也许您在开发服务器和生产环境中使用不同的Python版本?在Python 2.5中,DictReader实例的fieldnames属性为None,直到实例用于获取至少一行。