Python JSON 如何过滤返回的数据
我正在使用Discogs的API来获取数据,想要把结果限制为只有格式为'CD'、'专辑'或'大单曲'的记录。不过我不太确定怎么过滤这些数据,因为Discogs在最开始的请求中没有提供简单的过滤方法。你会注意到下面提到的JSON链接中包含了'DVD'和'VHS',我想把它们排除掉。有没有什么想法或者线索可以让我在获取数据后进行过滤呢?
Python
url = 'http://api.discogs.com/database/search?sort=year&sort_order=asc&artist=Britney+Spears&track=Crazy+Stop+Remix&type=master'
request = urllib2.Request(url)
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_object = json.load(response)
if json_object['results'] == []:
print 'No results found'
else:
json_object_results_by_year=[x for x in json_object['results'] if 'year' in x]
json_sorted_results = sorted(json_object_results_by_year,key=lambda x:x['year'])
#print json_sorted_results
1 个回答
3
wanted = {u'CD',u'Album',u'Maxi-Single'}
[i for i in json_object[u'results'] if any(w in wanted for w in i[u'format'])]
或者
[i for i in json_object[u'results'] if any(w in i[u'format'] for w in wanted)]