首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python入门进阶教程-JSON操作

作者:一叶

介绍:放不下灵魂的搬砖者

全文共1225字,阅读全文需6分钟

Python版本3.8.0,开发工具:Pycharm

什么是JSON?

JSON 的全称是 JavaScript Object Notation,即 JavaScript 对象符号,它是一种轻量级、跨平台、跨语言的数据交换格式,其设计意图是把所有事情都用设计的字符串来表示,这样既方便在互联网上传递信息,也方便人进行阅读。

JSON 主要有两种数据结构:

  • 由 key-value对组成的数据结构。这种数据结构在不同的语言中有不同的实现。例如在 Python中是一种 dict 对象;在C语言中是一个struct;在其他语言中,则可能是 record等。
  • 有序集合。这种数据结构在 Python 中对应于列表;在其他语言中,可能对应于 list等。

01

JSON数据类型

当程序把 JSON 对象或 JSON 字符串转换成 Python 对象时,从 JSON 类型到 Python 类型的转换关系如下所示:

JSON类型

Python类型

JSON 类型

Python 类型

对象(object)

字典(dict)

数组(array

列表(list)

字符串(string)

字符串(str)

整数(number(int))

整数(int)

实数(number(real))

浮点数(float)

true

True

false

False

null

None

同样的,当程序把 Python 对象转换成 JSON 格式字符串时,从 Python 类型到 JSON 类型的转换关系如下所示:

Python类型

JSON类型

Python 类型

JSON 类型

字典(dict)

对象(object)

列表(list)和元组(tuple)

数组(array)

字符串(str)

字符串(string)

整型、浮点数,枚举

数值型(number)

True

true

False

false

None

null

02

JSON模块

Python3 中可以使用 json 模块来对 JSON 数据进行编解码,它包含了两个函数:

  • json.dumps(): 对数据进行编码。
  • json.loads(): 对数据进行解码。

使用 dumps 函数对数据进行编码

代码语言:javascript
复制
 1import json
 2# 创建字典类型Person
 3person = {
 4    'name': '知秋小梦',
 5    'gender': 'male',
 6    'age': 18
 7}
 8# Python字典类型转换为JSON对象
 9json_person = json.dumps(person)
10print(json_person)
11
12# 输出
13{"name": "\u77e5\u79cb\u5c0f\u68a6", "gender": "male", "age": 18}

输出的中文是中文的ascii字符码,而不是真正的中文。 这是因为json.dumps 序列化时对中文默认使用的ascii编码 因此需要使用ensure_ascii=False来指定出中文

代码语言:javascript
复制
1# 设置不适用ascll编码
2json_person = json.dumps(person,ensure_ascii=False)
3print(json_person)
4# 输出
5{"name": "知秋小梦", "gender": "male", "age": 18}

使用 loads 函数对数据进行解码

代码语言:javascript
复制
1# 将 JSON 对象转换为 Python 字典
2dict_person = json.loads(json_person)
3print("person['name']: ",dict_person['name'])
4print("person['age']: ", dict_person['age'])
5
6# 输出
7person['name']:  知秋小梦
8person['age']:  18

03

JSON文件

dumps()和loads()主要用于Python和json对象的相互转化, dump()与load()主要用于读写json文件

代码语言:javascript
复制
1# 写入 JSON 数据
2with open('data.json', 'w', encoding='utf-8') as f:
3    json.dump(data, f)
4
5# 读取 JSON 数据
6with open('data.json', 'r', encoding='utf-8') as f:
7    data = json.load(f)

open函数的用法在文件章节有介绍: open函数用法


JSON作为数据存储、交互用的比较多,比如网页cookie、数据交互等,建议掌握!

下节将介绍Python 时间序列

Python系列

Python系列会持续更新,从基础入门到进阶技巧,从编程语法到项目实战。若您在阅读的过程中发现文章存在错误,烦请指正,非常感谢;若您在阅读的过程中能有所收获,欢迎一起分享交流。

如果你也想和我一起学习Python,关注我吧!

学习Python,我们不只是说说而已

End

下一篇
举报
领券