python解析json文件方法

来源:千锋教育
发布时间:2023-11-12 09:07:34
分享

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培训机构:千锋教育。

声明:本站部分稿件版权来源于网络,如有侵犯版权,请及时联系我们。

相关推荐

  • python sleep和wait对比分析 pythonsleep和wait对比分析本文教程操作环境:windows7系统、Python3.9.1,DELLG3电脑。1、相同点sleep和wait都是用来进行线程控制,都可以使线程阻塞。(1)s
  • python字典获取对应键的方法 python字典获取对应键的方法本文教程操作环境:windows7系统、Python3.9.1,DELLG3电脑。1、说明字典与列表区别就是字典强调的是“键值对”,key与value一一对应,字典中的
  • time.localtime在python中的使用 time.localtime在python中的使用本文教程操作环境:windows7系统、Python3.9.1,DELLG3电脑。1、说明将一个时间戳转换为当前时区的struct_time。secs
  • python time.clock()的出错解决 pythontime.clock()的出错解决本文教程操作环境:windows7系统、Python3.9.1,DELLG3电脑。1、错误说明弃用警告:时间时钟在python3.3中已被弃用,并将从py
  • python中time.clock()的使用 python中time.clock()的使用本文教程操作环境:windows7系统、Python3.9.1,DELLG3电脑。1、概念是统计cpu时间的工具,这在统计某一程序或函数的执行速度最为合适。
  • python中子类与父类的关系 python中子类与父类的关系本文教程操作环境:windows7系统、Python3.9.1,DELLG3电脑。1、概念子类和父类主要描述的是类之间的继承关系,即所属关系。继承的类可在被继承的类的基础