gpt4 book ai didi

python - 按键值对 JSON 数据进行排序

转载 作者:太空狗 更新时间:2023-10-29 22:09:47 25 4
gpt4 key购买 nike

我目前正在从 discogs API(mp3 标签数据)获取 JSON 数据,并希望按键值对结果进行排序。在这种情况下,我试图获取 Guns n Roses 歌曲的数据,输出将 1988 年作为第一个,而数据实际上有 1987 年的记录。我如何对这些数据进行排序,以便我可以通过年份(从旧到新)。下面的代码按键或值排序,但这不是我想要得到的。请帮忙。

import json
import urllib2
request = urllib2.Request('http://api.discogs.com/database/search?sort=year&sort_order=asc&artist=%22Guns+N%27+Roses%22&track=%22Sweet+Child+O%27+Mine%22&format_exact=Album&type=master')
request.add_header('User-Agent','Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)')
request.add_header('Content-Type','application/json')
response = urllib2.urlopen(request)
json_raw= response.readlines()
json_object = json.loads(json_raw[0])



for row in json_object['results']:
try:
from operator import itemgetter
for k, v in sorted(row.items(), key=itemgetter(0)):
print k, v
except KeyError:
pass

最佳答案

您可以为此使用列表理解和 sorted() 函数:

# filter  json_object['results']  first, as some of the items are missing the key 'year'

In [33]: results = [x for x in json_object['results'] if 'year' in x]

In [34]: sorted(results, key=lambda x: x['year'])

或:

In [79]: from operator import itemgetter

In [80]: sorted(results, key=itemgetter('year'))

关于python - 按键值对 JSON 数据进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13438574/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com