这是代码(它在类中运行):
if profile['profile_picture']:
profile['profile_picture_raw_path'], # Line 26
profile['profile_picture_thumbnail'],
profile['profile_picture'] = self.picture_path(profile['profile_picture'])
密钥不存在。 picture_path
返回的典型结果是
('//domain.com/218971848/21924823397471f5e4e41a803da17f7c.jpg:large', '//domain.com/profile-images/218971848/21924823397471f5e4e41a803da17f7c.jpg:thumb-100', '//domain.com/profile-images/218971848/21924823397471f5e4e41a803da17f7c.jpg:exact')
如您所见,结果是3个元素的元组。
我收到了一个错误:
File "/srv/rwt/production/application/rwt/profile.py", line 26, in load_profile
profile['profile_picture_raw_path'],
KeyError: 'profile_picture_raw_path'
为什么会出现此错误?搜索了Stack Overflow的类似问题,但似乎有人问他们是否通过不存在的密钥访问字典值。
答案 0 :(得分:4)
profile['profile_picture_raw_path'],
本身被解析为一个独立的表达式(尽管如此)。
您需要告诉Python解释器下一行是表达式的一部分:
profile['profile_picture_raw_path'], \
profile['profile_picture_thumbnail'], \
profile['profile_picture'] = self.picture_path(profile['profile_picture'])
答案 1 :(得分:1)
使用括号
if profile['profile_picture']:
(profile['profile_picture_raw_path'], # Line 26
profile['profile_picture_thumbnail'],
profile['profile_picture']) = self.picture_path(profile['profile_picture'])