<p>获取<code>KeyError</code>的原因是,您试图从字典的外部级别访问键<code>"Points"</code>,该键不属于该级别,即使它属于当前结构,您也不会看到结果上的差异</p>
<p>在一个<code>list</code>中有一个<code>dict</code>,没有什么要<code>sort</code>。如果要对<code>dict</code>进行排序,则只有在使用<code>3.7+</code>时才可能,因为从<code>3.7</code>开始,<a href="https://mail.python.org/pipermail/python-dev/2017-December/151283.html" rel="nofollow noreferrer">^{<cd3>}s in Python are guaranteed to maintain order</a>。如果确实满足版本要求,则使用:</p>
<pre><code>def myFUNC (e):
return e[1]["Points"]
team_stats = [
{"76ers" : {"Wins" : 22,
"Losses" : 12,
"Points" : 647},
"Nets" : {"Wins" : 22,
"Losses" : 13,
"Points" : 629},
"Bucks" : {"Wins" : 21,
"Losses" : 13,
"Points" : 618}}
]
result = [dict(sorted(team_stats[0].items(), key=myFUNC))]
print(result)
</code></pre>
<p>给</p>
<pre><code>[{'Bucks': {'Wins': 21, 'Losses': 13, 'Points': 618},
'Nets': {'Wins': 22, 'Losses': 13, 'Points': 629},
'76ers': {'Wins': 22, 'Losses': 12, 'Points': 647}}]
</code></pre>
<p>如果不满足版本要求,则需要使用<a href="https://docs.python.org/3/library/collections.html#collections.OrderedDict" rel="nofollow noreferrer">^{<cd10>}</a>:</p>
<pre><code>from collections import OrderedDict
# replace the `result` line with this:
result = [OrderedDict(sorted(team_stats[0].items(), key=myFUNC))]
</code></pre>
<p>其中:</p>
<pre><code>[OrderedDict([('Bucks', {'Wins': 21, 'Losses': 13, 'Points': 618}),
('Nets', {'Wins': 22, 'Losses': 13, 'Points': 629}),
('76ers', {'Wins': 22, 'Losses': 12, 'Points': 647})])]
</code></pre>
<p>但我不明白你为什么需要这个清单</p>
<p>另外,<code>list().sort()</code>修改<code>list</code>的位置,这不仅在这里是无用的,打印它将返回<code>None</code></p>