ABC|JOINED
DEF|ABSENT
GHI|ABSENT
JKL|JOINED
MNO|JOINED
PQR|ABSENT
STU|JOINED
VWX|JOINED
YZA|JOINED
ABC|JOINED
DEF|ABSENT
GHI|JOINED
JKL|JOINED
MNO|JOINED
PQR|ABSENT
STU|ABSENT
VWX|ABSENT
YZA|JOINED
ABC|JOINED
DEF|JOINED
GHI|JOINED
JKL|JOINED
MNO|JOINED
PQR|ABSENT
STU|JOINED
VWX|ABSENT
YZA|JOINED
这是我的“studList.txt”
这是我的密码。为什么要显示结果
d={}
with open("studList.txt") as f:
for line in f:
(name,status)=line.strip().split("|")
d[name]=status
print(d)
ValueError: not enough values to unpack (expected 2, got 1)
正如评论所暗示的,您的数据可能在某个地方存在问题,而当前问题中的代码确实有效。显然,理想的解决方案是通过修复生成数据的流程来消除此问题,但是,例如,如果数据是手动生成的,则更好的方法是验证数据,而不仅仅是假设数据是正确的。例如:
通过迎合可能不正确的数据,您可以防止获得该值错误
或者,如果发现错误数据确实是异常的,并且您希望忽略并记录它,那么另一种方法是将相关代码包装为
try
/except
块,例如:两者都将跳过任何错误记录
如注释中所述,您正在为同一个键分配多个值,因此只有最后一个键将继续存在。希望这是正确的行为,或者只是这个虚拟数据的情况。如果您的类可能有两个同名的人,则需要不同的标识符。最后要注意的是
(name, status)
中的括号是多余的相关问题 更多 >
编程相关推荐