2

コードは次のとおりです(クラス内で実行されます)。

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で同様の質問を検索しましたが、存在しないキーを使用して辞書の値にアクセスすることについて質問されているようです。

4

2 に答える 2

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'])
于 2013-03-24T10:57:11.843 に答える
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'])
于 2013-03-24T12:18:04.830 に答える