Python ValueError尝试遍历时出错

Python ValueError尝试遍历时出错,python,csv,python-2.7,Python,Csv,Python 2.7,新手python查询 使用python 2.7.3 正在尝试以下代码: #Read in from a file BNG = csv.reader(open('BNG.csv', 'rU'), delimiter = ',') BNG.next() #Get the output file ready outputFile = open('BNGandLatLon.csv', 'wb') output=csv.writer(outputFile,delimiter=',') output.wr

新手python查询

使用python 2.7.3

正在尝试以下代码:

#Read in from a file
BNG = csv.reader(open('BNG.csv', 'rU'), delimiter = ',')
BNG.next()

#Get the output file ready
outputFile = open('BNGandLatLon.csv', 'wb')
output=csv.writer(outputFile,delimiter=',')
output.writerow(['Lat', 'Lon', 'E', 'N'])

#Loop through the data 
for E,N in BNG:
    lat, lon = OSGB36toWGS84(float(E), float(N)) 
    output.writerow([str(lat), str(lon), str(E), str(N)])
#Close the output file
outputFile.close()
但在BNG的迭代过程中,它出现了:

ValueError: too many values to unpack

我已经检查了这个错误(eg),认为它与BNG中E,N的
有关:
查找一个项目(E和N),而不是两个独立的
E
N
值。但是我在从BNG.csv文件中编码这个时遇到了真正的问题。使用了
.item
zip
izip
,但未能正确使用。欢迎提供一些帮助。Cheers

正如错误所示,在文件中的某个点上,有一行没有两个元素。找到该行的简单方法:

i = 0
for E, N in BNG:
    print i
    i += 1
    lat, lon = ...
    output.writerow(...)

当脚本出错时,它将打印出最后一行,因此请检查文件中的下一行。

是否可以检查
BNG.csv
文件中包含多个逗号的行?该错误表明CSV模块在某一点上为一行提供了两个以上的值,当它试图将这些值解包到
E,N
变量中时,会生成异常。对于测试,用BNG中的
for行替换当前的
for
语句也可能是有效的:try:E,N=line;除了ValueError:print(line)
(根据需要使用换行符和缩进),然后是循环体的其余部分。该错误表明您有2个以上的项,而不是更少的项。我从R调用python,而为python编写的.csv R确实有三个值。谢谢你的提示。经验教训。谢谢你的代码。帮助我将错误跟踪到.csv文件。不客气。别忘了接受适合你的答案(点击绿色复选标记)。