根据字段名称和值从JSON中选择字段

时间:2018-11-08 17:17:48

标签: python json select

在python中,我从API调用中获取了JSON。

resp = requests.get(url)
resp.json()

我将使用MySQL词汇表。 我得到的这个对象很大,结构不规则(并非所有字段都可用于每个条目)。

所以我想在JSON中选择一些字段和一些基于值的条目。 假设JSON返回用户的个人资料,其中包含字段"name""email""age"

我想创建一个新的具有以下内容的小型JSON:

  • 只有一个字段“电子邮件”-我们将删除没有电子邮件字段的条目。
  • 仅当"age" = 15

在SQL中,我会在30秒内完成操作,但是我还没有找到如何在Python中完成操作...

1 个答案:

答案 0 :(得分:0)

您可以为此列出理解-我认为语法与SQL最相似

[obj for obj in res.json() if obj.email is not None and obj.age=="15"]

或使用更具功能性的方法

def yourCustomFilter(obj):
    return obj.email is not None and obj.age=="15"

filter(resp.json(), yourCustomFilter)

或每个循环简单

filteredObjects = []
for obj in resp.json():
    if obj.email is not None and obj.age=="15":
        filteredObjects.append(obj)