欢迎,来自IP地址为:18.97.9.173 的朋友


JSON格式已经变得非常普遍,常常用于Android设备、Web服务以及REST API接口等。本教程将着重介绍JSON格式以及Python程序如何处理JSON文件。

什么是JSON

  • JSON是JavaScript Object Notation的缩写,表示JS对象符号,是一种数据表示格式
  • 这种格式经常被用于服务器和客户端间传递数据
  • 这种格式还常常用于应用程序间传递数据
  • JSON格式在Web应用开发中非常重要,是事实上REST API的数据格式标准
  • 它是基于Java脚本的一个子集
  • 它便读取和写入

为什么要使用JSON

最初网站的开发都使用HTML语言,HTML就像是事实上的设计模式,人们创建的网页都是静态的,即在设计完成后内部就相对固定,不会产生变化。但现在,一切都改变了,网站变得支持动态页面了。动态页面意味着从服务器获得的数据将是动态的,或者根据用户请求的不同,会得到不同的响应。

  • 当客户端向服务器发送请求后,服务器会将响应数据反馈给客户端,这个响应数据当然可以是纯文本,但是纯文本内容对于客户端程序来说是非常难于理解的

举例来说:

  • 假设数据库中有10个雇员信息,如果以纯文本格式响应请示,那么响应数据大概是以下的样子:
employee name is John Doe, employee address is Chicago
  • 那么问题来了,假设所有雇员的响应信息都以这种格式返回,人当然可以通过阅读理解到其中的内容,但是这对于编程来说就非常难于实现
  • 因此,我们需要一个定义良好的结构,以便我们可以轻松地读取程序中的数据,而JSON正是被广泛使用的结构。
  • 如果你正在构建一个应用程序,其前端通过API与服务器交互通信。那么,JSON是通过HTTP请求发送和接收数据的标准格式。

JSON语法规则

  • 使用键值对——{“name”:”sam”}
  • 键名使用双引号括起
  • 必须使用特定的数据格式
  • 文件扩展名为”.json”
  • MIME 类型为”Application/json”

JSON文件示例

以下是一个标准的JSON格式文件示例:

{
  "name":"Sam"
   "age":20
    "address":{
               "street":"Main street"
               "city":"Ranchi" 
              }
   "salary":5000   
}

Python读取JSON文件

现在,我们将要了解Python如何读取JSON文件,其实这并不复杂,我们也将涉及一些细节。

创建JSON文件

首先,我们需要创建一个JSON文件以用于示例,仍然采用之前雇员信息的例子,我们创建一个”employee.json”文件,内容如下:

{
  "employees": [
    {
      "name": "Sam",
      "Dept": "HR",
      "salary": 5000
    },
 
    {
      "name": "Mayra",
      "Dept": "Sales",
      "salary": 6000
    },
 
    {
      "name": "Hisham",
      "Dept": "HR",
      "salary": 9000
 
    },
 
    {
      "name": "Arsh",
      "Dept": "Production",
      "salary": 10000
 
    }
  ]
}

通过这个文件,我们存储了雇员的名字、部门和薪酬信息。首先,我们创建一个JSON对象,这个对象包含一个键”employees”,这个键对的值是一个包含若干JSON对象的数组,数组中的每个元素就是一个JSON对象,包含了不同雇员的具体信息。注意,每个JSON对象用大括号({ })包围,而对象数组使用中括号([ ])包围。在数组中可以添加任意多的JSON对象。

创建Python脚本

在IDE中创建一个Python脚本文件,并将之前创建的JSON文件保存在同一目录中。

读取JSON文件

我们想要读取JSON文件内容,就要先将文件内容加载到Python对象中,这需要调用”json.load()”方法,脚本如下:

import json 
 
#open the file
with open('employee.json') as f:
  data = json.load(f)
 
#reading file
for emp in data['employees']:
    print(emp)

我们都做了些什么

  • 首先我们导入了json模块
  • 然后我们使用with语言将json文件打开,注意由于json文件同Python脚本位于同一目录,并没有在程序中指定文件位置,实际使用时需要指定文件位置以免出错
  • 调用json.load(f)方法将文件内容加载到Python对象中
  • 通过循环迭代,依次访问对象中的元素
  • 最后打印出每个对象的内容

如果我们执行上面的脚本,会得到以下的输出结果:

可以看到,Python脚本可以方便的处理JSON对象,并且可以区分具有相同属性的不同数据。

访问JSON文件的某些属性

如果只想获取JSON对象的某些属性,Python处理上也非常简单,例如想了解雇员的姓名和薪酬情况,只需要对上面的代码做如下修改:

for emp in data['employees']:
    print(emp["name"],emp["salary"])

从上面的代码可以看出,json.load()函数可以将JSON对象转换为Python的字典对象,之后Python就可以操作这个字典对象了,是不是很方便呢。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注