需要超过0个值进行解包
我有一些代码:
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()
来获取 key
和 value
这对值。
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'