Python JSON如何过滤返回的数据

标签 python json discogs-api

我正在使用 Discogs API 获取数据,并且希望将 JSON 限制为仅格式为“CD”、“Album”或“Maxi-Single”的记录。我不确定如何过滤获取的数据,因为 Discogs 没有更简单的方法来从初始请求本身过滤此数据。您会注意到下面提到的 JSON URL 有我想省略的“DVD”和“VHS”。任何想法/线索如何在获取完成后过滤它?

JSON URL:http://api.discogs.com/database/search?sort=year&sort_order=asc&artist=Britney+Spears&track=Crazy+Stop+Remix&type=master

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

最佳答案

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)]

关于Python JSON如何过滤返回的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14547918/

相关文章:

python - 本地二进制模式中的意外行为 - python skimage

java - Jackson 序列化包括子类的字段

iphone - 数组可以是顶级 JSON 对象吗? (在 Objective C,Stig Brautaset 的库中)

javascript - 层次结构中的递归替换

image - 如何获取 Discogs 版本的图像?

python - 使用 sqlalchemy (ORM) 进行外连接

python - 未找到 'api' 的反向。 'api' 不是带有 Rest-framework 的有效 View 函数或模式名称

python - 将 python 算法的多个 git 项目分支 merge 为一个

javascript - 速率限制从 react 客户端向 API 发出的请求数