在尝试将名为 counter 的变量添加到 for 循环中时,我不断收到 ValueError。当 counter 变量和 enumerate 标签被移除时,程序运行良好,但当它被添加时,程序就会崩溃。
这是发生错误的代码:
SStrats = {'RSI': OrderedDict([('Exchange', 'Bybit'), ('AccountName', 'Account1'), ('StrategyName', 'RSI'), ('Script', 'MomentumStrats'), ('StratStatus', 'ACTIVE')]), 'ROCR100': OrderedDict([('Exchange', 'Bybit'), ('AccountName', 'Account1'), ('StrategyName', 'ROCR100'), ('Script', 'MomentumStrats'), ('StratStatus', 'ACTIV
E')]), 'MOM': OrderedDict([('Exchange', 'Bybit'), ('AccountName', 'Account1'), ('StrategyName', 'MOM'), ('Script', 'MomentumStrats'), ('StratStatus', 'ACTIVE')])}
for counter,strategy,Status in enumerate(SStrats.items()):
print("Account: ", Acc_name, "Strategy: ", strategy, "Strat Status:", Status["StratStatus"], "counter", counter)
这段代码的结果:
ValueError: not enough values to unpack (expected 3, got 2)
答案 0 :(得分:2)
您得到一个元组(对),其中包含一个整数和一个元组(OrderedDict
中的键值对),而不是三元组。
您可以像这样解压缩值:
for counter, (strategy, Status) in enumerate(SStrats.items()):
print("Account: ", Acc_name, "Strategy: ", strategy, "Strat Status:", Status["StratStatus"], "counter", counter)