python遍历判断json是否存在某个key
json
适用于现代 C++ 的 JSON。
项目地址:https://gitcode.com/gh_mirrors/js/json
免费下载资源
·
一.项目背景
最近在开发一个数据抓取业务模块,用于抓取本地数据库的部分关键数据, 作为数据分析和统计的依据. 在抓取过程中, 由于不同子业务项目产生的数据结构不是完全一样, 这时候就要用到判断数据节点是否存在的功能, 数据是json格式.
二.实现代码
不多废话直接上代码吧:
class checkJSON(object):
def getKeys(self,data):
keysAll_list = []
def getkeys(data): # 遍历json所有key
if (type(data) == type({})):
keys = data.keys()
for key in keys:
value = data.get(key)
if (type(value) != type({}) and type(value) != type([])):
keysAll_list.append(key)
elif (type(value) == type({})):
keysAll_list.append(key)
getkeys(value)
elif (type(value) == type([])):
keysAll_list.append(key)
for para in value:
if (type(para) == type({}) or type(para) == type([])):
getkeys(para)
else:
keysAll_list.append(para)
getkeys(data)
return keysAll_list
def isExtend(self,data,tagkey): #检测目标字段tagkey是否在data(json数据)中
if(type(data)!=type({})):
print('please input a json!')
else:
key_list=self.getKeys(data)
for key in key_list:
if(key==tagkey):
return True
return False
if __name__ == '__main__':
cjson=checkJSON()
data={
"code": 0,
"msg": "ok",
"data": {
"list": [
{
"stock_id0": "601318.SH",
"stock_code0": "601318",
"stock_name0": "中国平安",
},{
"stock_id1": "600000.SH",
"stock_code1": "600000",
"stock_name1": "浦发银行",
}
]
},
"pass":{
"stock_id2": "600000.SH",
"stock_code2": "600000",
"stock_name2": "浦发银行",
},
"call_stack": ""
}
list=cjson.getKeys(data)
print(list)
print(cjson.isExtend(data,'stock_name0'
三.效果展示
GitHub 加速计划 / js / json
41.72 K
6.61 K
下载
适用于现代 C++ 的 JSON。
最近提交(Master分支:1 个月前 )
960b763e
4 个月前
8c391e04
6 个月前
更多推荐
已为社区贡献4条内容
所有评论(0)