Python 检查json父值是否为空
我可以使用什么方法来确定json父值是否为空 基本上我有一个像这样的urlPython 检查json父值是否为空,python,python-3.x,Python,Python 3.x,我可以使用什么方法来确定json父值是否为空 基本上我有一个像这样的url catalogue/items.json?category=1&item=scarf 有10多个类别 我想搜索所有类别,直到它发现json实际上返回了一个有效的价格指数,等等。。(即使类别中不存在项,它仍会在json中打印出类别中有多少项) 例如: 如果围巾属于第2类 {"total":100,"items":["name":"Scarf", "current":{"price":"122.5"}]} {"t
catalogue/items.json?category=1&item=scarf
有10多个类别
我想搜索所有类别,直到它发现json实际上返回了一个有效的价格指数,等等。。(即使类别中不存在项,它仍会在json中打印出类别中有多少项)
例如:
如果围巾属于第2类
{"total":100,"items":["name":"Scarf", "current":{"price":"122.5"}]}
{"total":100,"items":[]}
如果第2类中不存在围巾
{"total":100,"items":["name":"Scarf", "current":{"price":"122.5"}]}
{"total":100,"items":[]}
在您的示例中,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
编辑:建议您使用
if data.get('items', {}).get('name', '').lower() == 'scarf':
print 'There is Scarf'
else:
print 'There is NO Scarf'
不清楚您正在搜索的是什么特定JSON对象,格式是什么,需要的匹配有多接近(大小写不匹配),或者结果应该是什么样子(您显示的是无效的JSON)。如果数据['items'中的'name',这就是我需要的,谢谢。编辑:单击save To early+1或者,您可以只执行
data.get('items',{}).get('name','').lower()='scarf'