我为系统自动化编写了一个脚本,但是我收到了标题中描述的错误。我下面的代码是脚本的相关部分。有什么问题?
import csv
import os
DIR = "C:/Users/Administrator/Desktop/key_list.csv"
def Customer_List(csv):
customer = open(DIR)
for line in customer:
row = []
(row['MEM_ID'],
row['MEM_SQ'],
row['X_AUTH_USER'],
row['X_AUTH_KEY'],
row['X_STORAGE_URL'],
row['ACCESSKEY'],
row['ACCESSKEYID'],
row['ACCESSKEY1'],
row['ACCESSKEYID1'],
row['ACCESSKEY2'],
row['ACCESSKEYID2'])=line.split()
if csv == row['MEM_ID']:
customer.close()
return(row)
else:
print ("Not search for ID")
return([])
id_input = input("Please input the Customer ID(Email): ")
result = Customer_List(id_input)
if result:
print ("iD: " + id['MEM_ID']
答案 0 :(得分:5)
对于
行line.split()
你在分裂什么?看起来像CSV,请尝试
line.split(',')
示例:
"one,two,three".split() # returns one element ["one,two,three"]
"one,two,three".split(',') # returns three elements ["one", "two", "three"]
编辑:正如@ TigerhawkT3所提到的,最好使用CSV模块。令人难以置信的快速简便的方法here。
答案 1 :(得分:3)
错误消息相当不言自明
(a,b,c,d,e) = line.split()
期望line.split()
产生5个元素,但在你的情况下,它只产生1个元素。这可能是因为数据不是您期望的格式,流氓格式错误的行,或者可能是空行 - 没有办法知道。
要查看导致问题的行,您可以添加一些调试语句,如下所示:
if len(line.split()) != 11:
print line
正如马丁所说,你可能也会分裂错误的分隔符。
答案 2 :(得分:0)
您的数据看起来有问题,它不是您期望的格式。它可能是数据中的新行字符或空白空间,用于修改代码。