在获得第三方数据后,我们需要对数据进行分析,但我们发现它是json的文件形式,不能直接使用。这需要使用分析方法,我们可以在python中完成此操作。以下是对json的简要解释,然后澄清对json文件的分析 最后和大家分享相关的分析代码,一起往下看具体内容。
1.json说明
json是一个看起来像嵌套字典的字符串。数据被“{}”和“[]”层层包裹,需要“拆包”才能获得我们需要的数据。
两种结构:
(1)集合“名称/值”(A collection of name/value pairs)。在不同的编程语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或关联数组 (associative array)。
(2)值的有序列表(An ordered list of values)。在大多数语言中,它被实现为数组(array),矢量(vector),列表(list),序列(sequence)。
2.解析思路
(1)新建两个函数A和B。
(2)函数 A处理字典数据,调用后,判断传输的参数,如果参数是字典,则调用自己;
(3)如果是列表或元组,则调用列表处理函数B;
(4)函数 B处理列表,调用后,判断传输的参数,如果参数是列表或元组,则调用自己;
(5)如果是字典,请调用字典处理函数A。
3.实例
代码中的get_target_value函数为a函数,_get_value为B函数。
#在嵌套json文件中处理指定关键字 #处理字典值 defget_target_value(key,dic,tmp_list): """ :paramkey:目标key值 :paramdic:JSON数据 :paramtmp_list:用于存储获得的数据 :return:list """ ifnotisinstance(dic,dict)ornotisinstance(tmp_list,list):#对传输数据进行格式校验 return'argv[1]notandictorargv[-1]notanlist' ifkeyindic.keys(): tmp_list.append(dic[key])#存在传入数据时,存储tmp__list forvalueindic.values():#如果传入数据不符合要求,它的value值将被广泛使用 ifisinstance(value,dict): get_target_value(key,value,tmp_list)#value值是字典,直接调用自己 elifisinstance(value,(list,tuple)): _get_value(key,value,tmp_list)#value值是一个列表或元组输入数据,然后调用_get_value returntmp_list #处理元组或列表值 def_get_value(key,val,tmp_list): forval_inval: ifisinstance(val_,dict): get_target_value(key,val_,tmp_list)#value值是字典,引入数据,调用get_target_value elifisinstance(val_,(list,tuple)): _get_value(key,val_,tmp_list)
以上是python分析json文件的方法。您可以首先了解分析过程。在找出基本步骤后,您可以启动上述分析json操作。