如何过滤JSON数据?

时间:2018-04-27 19:53:24

标签: python json python-3.x

import requests

s = requests.Session()
r = s.get(
    'https://www.off---white.com/en/GB/men/products/omia066s188000161001.json')
print(r.text)

上面的代码重新运行以下内容:

{"available_sizes":[{"id":104792,"name":"40","preorder_only":false},
                    {"id":104794,"name":"42","preorder_only":false},
                    {"id":104795,"name":"43","preorder_only":false}]}

如何过滤上述数据,以便在指定名称值40时,打印出id值104792?

简单来说,如果我要求'name'40的值,那么脚本将打印'id'值。

2 个答案:

答案 0 :(得分:1)

您可以使用.json()的方法requests.Reponse

data = r.json()
try:
    value = next(size['id'] 
                 for size in data['available_sizes'] 
                 if size['name'] == '40')
except StopIteration:
    value = None

value中,如果存在name == '40',则None将存储第一个尺码ID。

答案 1 :(得分:0)

data = foo["available_sizes"]
new_dict = {}
for dict_ in data:
    new_dict.update({dict_["name"]: dict["id"]})