需要超过0个值进行解包

2 投票
2 回答
1317 浏览
提问于 2025-04-18 16:20

我有一些代码:

text = ''
for key, value in d:
    text += k + ' ' + str(v) + '\n'
file = open('ATM Data', 'w')
file.write(text)
file.close()

当它运行的时候,会出现一个

ValueError: need more than 0 values to unpack

但实际上我的字典里确实有一些东西。有人能帮忙吗?

2 个回答

3

如果 d 是一个字典,那么你需要使用 d.items() 或者 d.iteritems() 来获取 keyvalue 这对值。

0

字典的迭代器只会遍历键,所以你可以使用 items(这种方法比较通用),或者直接遍历键,然后获取对应的值:

for key, value in d.items():
    text += key + ' ' + str(value) + '\n'

或者

for key in d:
    text += key + ' ' + str(d[key]) + '\n'

注意,使用 join 和生成器表达式结合起来,可以获得更好的性能:

text = '\n'.join('{} {}'.format(key, value) for key, value in d.items()) + '\n'

撰写回答