查看: 2187|回复: 4

'too many values to unpack' error

[复制链接]

11

主题

63

帖子

159

积分

注册会员

Rank: 2

积分
159
发表于 2018-9-19 15:47:27 | 显示全部楼层 |阅读模式
  1. first_names = ['foo', 'bar']
  2. last_names = ['gravy', 'snowman']

  3. fields = {
  4.     'first_names': first_names,
  5.     'last_name': last_names,
  6. }        

  7. for field, possible_values in fields:  # error happens on this line     
复制代码

有人知道如何解决这个问题吗?
回复

使用道具 举报

10

主题

72

帖子

180

积分

注册会员

Rank: 2

积分
180
发表于 2018-9-19 15:49:48 | 显示全部楼层
你需要使用像iteritems这样的东西。
  1. for field, possible_values in fields.iteritems():
  2.     print field, possible_values
复制代码

有关迭代字典的更多信息,请参阅此答案,例如items()跨python版本使用。
自Python 3以来,不再支持 iteritems()。请改用items()。
  1. for field, possible_values in fields.items():
  2.     print(field, possible_values)
复制代码

回复

使用道具 举报

4

主题

33

帖子

88

积分

注册会员

Rank: 2

积分
88
发表于 2018-9-19 15:50:34 | 显示全部楼层
python 3.x iteritems已被删除。请改用items。
  1. for field, possible_values in fields.items():
  2.     print(field, possible_values)
复制代码

回复

使用道具 举报

4

主题

37

帖子

98

积分

注册会员

Rank: 2

积分
98
发表于 2018-9-19 15:51:28 | 显示全部楼层
你想使用iteritems。这会在字典上返回一个迭代器,它会为你提供一个元组(键,值)
  1. >>> for field, values in fields.iteritems():
  2. ...     print field, values
  3. ...
  4. first_names ['foo', 'bar']
  5. last_name ['gravy', 'snowman']

复制代码
你的问题是你在字段上循环,它返回字典的键。
  1. >>> for field in fields:
  2. ...     print field
  3. ...
  4. first_names
  5. last_name
复制代码

回复

使用道具 举报

0

主题

32

帖子

80

积分

注册会员

Rank: 2

积分
80
发表于 2018-10-10 08:13:24 | 显示全部楼层
楼上说的对!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表