newbie python query。
使用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
我检查了这个错误(例如Iterate over a string 2 (or n) characters at a time in Python)并认为这与for E, N in BNG:
找到一个项目(E和N)而不是两个单独的E
和{{1}有关值。但是我在从BNG.csv文件编码时遇到了实际问题。已使用N
,.item
和zip
,但未能正确使用。欢迎一些帮助。干杯
答案 0 :(得分:0)
正如错误所示,文件中的某个点有一行没有两个元素。找到该行的简便方法:
i = 0
for E, N in BNG:
print i
i += 1
lat, lon = ...
output.writerow(...)
当脚本出错时,它会打印出最后一行成功 - 所以请检查文件中的下一行。