当前位置: 首页 > 图灵资讯 > 行业资讯> python解析json文件方法

python解析json文件方法

来源:图灵python
时间: 2024-09-12 12:15:56

在获得第三方数据后,我们需要对数据进行分析,但我们发现它是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操作。