回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我用这个API <a href="https://jsonplaceholder.typicode.com/posts" rel="nofollow noreferrer">https://jsonplaceholder.typicode.com/posts</a>列出所有这样的帖子</p>
<pre><code>[
{
"userId": 1,
"id": 1,
"title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
"body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"
},
{
"userId": 1,
"id": 2,
"title": "qui est esse",
"body": "est rerum tempore vitae\nsequi sint nihil reprehenderit dolor beatae ea dolores neque\nfugiat blanditiis voluptate porro vel nihil molestiae ut reiciendis\nqui aperiam non debitis possimus qui neque nisi nulla"
},
</code></pre>
<p>我的密码</p>
<pre><code>session = requests.Session()
payload = session.request("GET", "https://jsonplaceholder.typicode.com/posts", timeout = 30).json()
print(payload)
</code></pre>
<p>现在我想按<code>id</code>对所有对象进行排序</p>
<pre><code>d = sorted(payload, key=operator.itemgetter("id"))
print(d)
</code></pre>
<p>如果我想按标题的长度排序</p>
<p>我不知道如何使用<code>operator</code>来提供<code>len(title)</code>作为键有可能吗</p>
<p>使用带有<code>for</code>循环的生成器表达式而不是<code>key</code></p>
<pre><code>d = sorted(len(value["title"]) for value in payload)
print(d)
</code></pre>
<p>输出</p>
<pre><code>[12, 12, 14, 14, 15, 18, 20, 20, 20, 20, 23, 24, 24, 24, 24, 24, 24, 25, 25, 26, 26, 26, 27, 27, 29, 29, 29, 30, 30, 30, 31, 32, 32, 32, 32, 33, 33, 33, 33, 34, 34, 34, 35, 36, 37, 37, 37, 37, 38, 38, 39, 39, 39, 40, 40, 41, 41, 41, 41, 42, 42, 42, 42, 43, 43, 43, 43, 44, 44, 44, 45, 46, 47, 47, 47, 49, 50, 50, 51, 51, 53, 53, 53, 53, 54, 55, 55, 55, 57, 59, 60, 60, 67, 68, 72, 74, 76, 76, 78, 79]
</code></pre>
<p>如您所见,这给了我每个<code>title</code>的长度,但我不知道实际的标题。如何在每个json对象的长度旁边打印<code>title</code></p>