值过多无法解包(预期11个)

2024-04-25 18:12:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个程序,从一个文本文件,其中包含多少人使用电子邮件,用户进去。这个我的代码是:

user = input('Enter an email: ')
f_in = open('us-500.csv','rt')
c = 0
f_in.readline()
for line in f_in:
    line = line.strip(' ')
    first, last, company, address, city, country, state, phone1, phone2, email, web = line.split(',')
    for count in line:
        if count == user:
            c +=1
print(c)

f_in.close()

Tags: 代码用户in程序anforinput电子邮件
2条回答
first, last, company, address, city, country, state, phone1, phone2, email, web = line.split(',')

左边有11个变量。这意味着,为了让作业成功,右侧必须有11个零件。所以在您的例子中,line.split(',')需要正好产生11个项目。在

从错误消息来看,情况似乎并非如此:有超过11个值。因此,您应该检查文件的内容,以确定还有哪些值。也许你忘了一两个变量。在

或者,您也可以更改分配,以便您可以获取任何数量的更多项目。为此,在末尾添加一个*rest名称。星号确保所有剩余项都以列表的形式存储在该变量中:

^{pr2}$

看起来csv文件中的列比预期的要少。调试代码并查看line值是什么,然后用逗号将其拆分。在

另外,我会用^{} module代替:

import csv

user = input('Enter an email: ')
with open('us-500.csv', 'r') as f_in:
    reader = csv.reader(f_in)

    row = next(reader)
    print(row)  # see if row has 11 items
    first, last, company, address, city, country, state, phone1, phone2, email, web = row

相关问题 更多 >