本节教程将为大家介绍如何使用 Python 语言来读/写 JSON 文件。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。
JSON 简介
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。简单地说,JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从 Web 客户机传递给服务器端程序。
JSON 具有良好的可读性和便于快速编写的特性,适合于服务器与 JavaScript 客户端的交互,是目前网络中主流的数据传输格式之一,应用十分广泛。
JSON基本语法
JSON 数据以一种 key-value(键值对)的方式存在。JSON 值可以是:数字(整数或浮点数)、字符串(在双引号中)、逻辑值( True 或 False )、数组(在方括号中)、对象(在花括号中)、null(空值)等。
JSON 的语法规则如下:
并列的数据之间用逗号(“,”)分隔;
映射用冒号(“:”)表示;
并列数据的集合(数组)用方括号(“[ ]”)表示;
映射的集合(对象)用大括号(“{}”)表示。
JSON 的 Object(对象类型):用 { } 包含一系列无序的 key-value 键值对表示,其中 key 和 value 之间用冒号分割,每个 key-value 之间用逗号分割。访问其中的数据,通过 obj.key 来获取对应的 value,例如:json={"name":"小芳", "age":16}。
JSON 的 Array(数组类型):使用 [ ] 包含所有元素,每个元素用逗号分隔,元素可以是任意的值。访问其中的元素,使用索引号从 0 开始。例如:json=["唱歌","编程","打球"]。
JSON 的复杂数据形式为 Object 或数组中的值还可以是另一个 Object 或者数组,例如:json={"name":"小芳"," hobby ":[ "唱歌","编程","打球"]}。
Python 读取 JSON 文件
在 Python 中若要进行 JSON 文件的读写,需要添加 JSON 模块。在 Python 中读取 JSON 文件是通过调用 json.load() 函数来实现的,json.load() 函数的语法格式如下:
json.load(file, encoding="utf-8")
函数中的参数 file 表示 JSON 文件名,encoding 表示编码方式。
Python 存储 JSON 文件
存储 JSON 文件需要调用 json.dump() 函数,该函数的语法格式如下:
json.dumps(data, file, sort_keys=False, indent=4, separators=(',', ': '), encoding="utf-8", ensure_ascii=False)
函数中的参数说明如下:
data:表示存储的 JSON 数据;
file:表示存储的 JSON 文件名;
sort_keys:表示是否排序,默认为 False,不排序;
indent:指定每个变量的缩进量,一般填 4,缩进 4 格;
separators:消除多余的空格,以减小文件大小;
encoding:编码方式,默认为“utf-8”。
其示例代码 example1.py 如下。
# -*- coding: utf-8 -*-
import json
#写文件
data = [{'a': 'apple', 'b': 'banana', 'c': [1, 2, 3]}, 11, 'test', True]
file = open('d:/data/jsontest1.txt','w')
json.dump(data, file)
file.close()
#读文件
file = open('d:/data/jsontest1.txt')
data = json.load(file,encoding="utf-8")
print(data)