首页 > 解决方案 > Python选择JSON的特定项目

问题描述

我有一个 Python 响应,并且某些响应项具有其他人没有的密钥。示例 JSON

"Order": [
    {
        "ID": "xxxxxx",
        "WNumber": "xxxxxxx",
        "Type": "xxxxxxx",
        "ServiceType": "xxxxxxxx",
        "Status": "xxxxxx",
        "StatusReason": "xxxxxxxxxxx",
        "Priority": "xxxxxxxx",
        "Owner": "xxxxxxxx",
        "ContactID": "xxxxxxx",
        "AssetID": "xxxxxxxxx",
        "AccountID": "xxxxxxxxxxxxxxxxxxxxxx",
    },
    {
        "ID": "xxxxxxxxxxxxxxxxxx",
        "WNumber": "xxxxxxxxxxxxx",
        "Type": "xxxxxxxx",
        "Status": "xxxxxxxxx",
        "StatusReason": "xxxxxxxx",
        "Priority": "xxxxxxxxxxxx",
        "Owner": "xxxxxxxxxxxxxxxx",
        "ContactID": "xxxxxxxxxxxxxxxx",
        "AssetID": "xxxxxxxxxxxxxx",
        "AccountID": "xxxxxxxxxxxxxxx",
        "CaseID": "xxxxxxxxxxxxxxx",
        
    }
]
}

如何从响应中提取正文中唯一具有“CaseID”键的项目?

最好的感谢

标签: pythonjson

解决方案


这是您的问题的单行解决方案。
使用in检查字典键中 CaseID 的出现dict.keys()

result = [r for r in response["Order"] if "CaseID" in r.keys()]
print(result)

>>    [{'ID': 'xxxxxxxxxxxxxxxxxx',
      'WNumber': 'xxxxxxxxxxxxx',
      'Type': 'xxxxxxxx',
      'Status': 'xxxxxxxxx',
      'StatusReason': 'xxxxxxxx',
      'Priority': 'xxxxxxxxxxxx',
      'Owner': 'xxxxxxxxxxxxxxxx',
      'ContactID': 'xxxxxxxxxxxxxxxx',
      'AssetID': 'xxxxxxxxxxxxxx',
      'AccountID': 'xxxxxxxxxxxxxxx',
      'CaseID': 'xxxxxxxxxxxxxxx'}]


推荐阅读