Python怎样处理JSON文件,有哪些要点
在本文中,我们将学习如何使用Python读取、解析和编写JSON文件。 我们将讨论如何最好地处理简单的JSON文件以及嵌套的JSON文件,当然我们也将讨论如何访问Json文件数据中的特定值。
JSON(Java Script Object Notation)是一种流行的文件格式,主要用于在web应用程序中存储和传输数据。如果我们经常和数据打交道,那么一定或多或少遇到过JSON格式的文件,因此我们有必要来学习如何读取和写入JSON。
下图为常见的JSON文件结构的示例.
JSON结构看起来和Python中的字典非常类似。需要注意的是,JSON格式通常是由key: 结对组成,其中key是字符串形式,value是字符串、数字、布尔值、数组、对象或null。
为了更直观的进行说明,在下图中我们以蓝色突出显示了所有的key,同时以橙色突出显示了所有的value。请注意,以下每组key/value间均使用逗号进行区分。
在Python中内置了用于读取JSON文件的函数。以下给出几个如何将JSON文件解析为Python对象的示例。
就这么简单,代码如下:
上述代码很简单很直观啦,唯一需要注意的是json库中有load()和loads()两个函数.
函数load()作用为读取JSON文件生成Python对象函数loads()作用为读取JSON 字符串流生成Python对象
我们可以将loads()函数中的字符s的含义理解成 load for strings.
当然我们也可以使用Pandas库中的 read_json函数来读取对应的JSON文件,
代码如下:
运行结果如下:
需要注意的是使用Pandas库不仅仅可以读取电脑本地磁盘上的JSON文件,也可以通过URL读取网络上存放的文件.
代码如下:
我们有时候遇到的JSON文件是嵌套的,这经常会让读取工作变得有些困难. 其实嵌套JSON和Python中的嵌套字典思想类似,即字典中嵌套字典.
我们观察上述例子中的member字段,其值也为字典类型,下图中我们使用缩进来展示嵌套结构。
设想一下,当我们将JSON文件加载到Pandas数据框架中时,members列如下所示。每行包含一个字典。
接下来我们讨论两种实现方法,这两种方法中,我们可以解析数据,以便将每个键分解为单独的一列。
方案一
我们可以在members这一列上使用apply方法,代码如下:
上述代码执行后,members列会被拆分为4个新列,如下所示:
代码如下:
方案二
在Pandas库中还有一个函数 json_normalize() ,它允许我们把嵌套的JSON展开。这是最简单的方法来解析嵌套的JSON了。
代码如下:
上述代码中:
运行结果如下:
最后我们需要注意的是,我们可以在上述函数json_normalize中添加参数 meta_prefix,这样可以让我们对meta中的名字添加统一的前缀。
代码如下:
运行结果如下:
在Python中我们可以通过Key的名字或者下标来访问JSON文件中任意位置的数据。
比如,假设我们想知道我们的第二个超级英雄的秘密身份。即在下图中,需要访问特定位置的数据在下图中以紫色突出显示。
为了得到这个值,我们可以直接使用以下语句:
从层次结构的顶部开始,由上往下,我们需要的第一个key是'members',因为它是我们需要访问的值所在的父节点。
在‘members'对应的键值中,我们看中括号,然后下标1表示list中的第二个成员。接着我们来看字段'secretIdentity',如下所示:
将上述过程合并在一起,我们就可以得到我们特定位置出的值为'Jane Wilson'。
代码如下:
当然,作为选择,我们也可以使用Pandas中的to_json()函数,完成上述功能。
我们有时候在终端直接打印json文件,通常会得到很不美观的输出,样例如下:
结果输出如下,是不是看上去更加美观啦。。。
当然dump函数中含有字段sort_key,通过设置其值,可以控制输出时是否对key进行排序。需要注意所有的key包括嵌套的key都会进行排序。
样例如下:
运行结果如下:
最后,让我们对本文做一下回顾,总结如下:
python在 Python 中字符串也可以使用三个单引号或三个双引号来表示字符串,这样字符串中的内容就可以多行书写,并且被多行输出。
python中要想处理excel,必须用到第三方模块xlrd,所以windows 我安装方法是cmd中命令:E: ANZHUANG Python Scripts>easy_install xlrd
这篇文章主要介绍了Python用来做Web开发的优势有哪些,Python适合从简单到复杂的各种Web项目。它广泛用于旅行,医疗保健,交通运输,金融等不同领域,用于Web开发和软件测试,脚本编写和生成。