首页 > 解决方案 > 如何过滤 JSON 数据?

问题描述

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' 值。

标签: pythonjsonpython-3.x

解决方案


您可以使用.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

Invalue将存储第一个大小 id,name == '40'如果存在,如果不存在None


推荐阅读