如何找到哪一行导致解包错误

How to find which line causes unpack error

我在 python 中遇到以下错误消息的问题。

ValueError: not enough values to unpack (expected at least 2, got 1)

出现上述错误的代码行是

op, param, *val = statement.split()

我试图找到一行只有一个至少不是 2 使用打印值的地方。 但是行数太多找不到了

你知道如何更容易找到问题所在的线路吗?

一个简单的方法是捕获错误,打印值,然后再次引发错误

try:
    op, param, *val = statement.split()
except ValueError:
    print(repr(statement))
    raise

或者你可以只打印所有的语句和一些其他信息,比如列表的长度,也许还有拆分列表……这样更容易准确地知道哪里出了问题。

print(statement)
l = statement.split()
print(l)
print("len : ", len(l))
op, param, *val = l