python解析json文件方法
python解析json文件方法
我们在获取一份第三方的数据后,需要进行数据的分析,但发现它是json的文件形式并不能直接使用。这就需要用到解析的方法,我们在python中就可以完成这样操作。下面就json说进行简单说明,然后理清解析json文件的思路,最后把相关的解析代码分享给大家,一起往下看具体内容。
1.json说明
json就是一种长得像嵌套字典的字符串。数据被“{}”和“[]”层层包裹,需要“拆包”才能拿到我们需要的数据。
两种结构:
(1)“名称/值”对的集合(Acollectionofname/valuepairs)。不同的编程语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hashtable),有键列表(keyedlist),或者关联数组(associativearray)。
(2)值的有序列表(Anorderedlistofvalues)。在大部分语言中,它被实现为数组(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操作啦。更多Python学习教程请关注IT培训机构:千锋教育。
猜你喜欢LIKE
相关推荐HOT
更多>>python中如何dataframe转换为ndarray?
python中如何dataframe转换为ndarray?小编介绍过python中ndarray与series如何相互转换的方法,其实Series转换为ndarray是一个一维数组,作为pan...详情>>
2023-11-14 05:21:25python中os.remove()的使用注意
python中os.remove()的使用注意计算机一般来说是需要定期的清理,系统的内存不能延伸,同时有一些不需要的文件也可以得以清除掉。有些人会使用o...详情>>
2023-11-14 04:47:11python元组的优势有哪些
python元组的优势有哪些本文教程操作环境:windows7系统、Python3.9.1,DELLG3电脑。1、因为元素不可变性,它可以作为哈希类型的key值。这样使...详情>>
2023-11-14 03:55:04python如何获取当前文件的部分信息?
python中如何获取当前文件的部分信息?一、文件对象常用的属性1、file.name:文件的名称2、file.mode:打开文件时,采用的文件打开模式3、file.e...详情>>
2023-11-14 03:24:14热门推荐
python中如何应用视图函数?
沸python根据键值(value)返回键(key)
热python中pickle模块是什么?
热python解析json文件方法
新python中如何dataframe转换为ndarray?
python中os.remove()的使用注意
Python中if嵌套是什么?
python元组的优势有哪些
python如何获取当前文件的部分信息?
Python使用平面文件进行存储
python中remove()方法如何使用删除后的值?
python如何使用RE正则表达检验字符串
pythonSelenium操作Cookie的方法
python类方法的注意点