检查json父值是否为空

时间:2014-06-29 01:22:18

标签: python python-3.x

我可以使用什么方法来确定json父值是否为空?

基本上我有一个看起来像这样的网址

catalogue/items.json?category=1&item=scarf

并且有超过10个类别

我想搜索所有类别,直到它发现json实际上返回了有效的价格索引等。(即使该类别中不存在项目,它仍将打印出该类别中的项目数量json)

示例:

如果围巾存在于第2类

{"total":100,"items":["name":"Scarf", "current":{"price":"122.5"}]}

如果第2类中不存在围巾

{"total":100,"items":[]}

1 个答案:

答案 0 :(得分:2)

在您的示例中,您的JSON字符串不正确,但我使用的是正确的版本。

import json

#-----

json_str = '''{"total":100,"items":{"name":"Scarf", "current":{"price":"122.5"}}}'''

data = json.loads(json_str)

if 'name' in data['items'] and data['items']['name'].lower() == 'scarf':
    print 'There is Scarf'
else:
    print 'There is NO Scarf'        

#-----

json_str = '''{"total":100,"items":{}}'''

data = json.loads(json_str)

if 'name' in data['items'] and data['items']['name'].lower() == 'scarf':
    print 'There is Scarf'
else:
    print 'There is NO Scarf'

结果:

There is Scarf
There is NO Scarf

编辑karthikr建议你可以使用

if data.get('items', {}).get('name', '').lower() == 'scarf':
    print 'There is Scarf'
else:
    print 'There is NO Scarf'