前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python入门进阶教程-JSON操作

Python入门进阶教程-JSON操作

作者头像
小一不二三
发布2019-12-31 16:38:26
6260
发布2019-12-31 16:38:26
举报

作者:一叶

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

全文共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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-11-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 知秋小梦 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • JSON数据类型
  • JSON模块
  • JSON文件
    • JSON作为数据存储、交互用的比较多,比如网页cookie、数据交互等,建议掌握!
    • Python系列
    相关产品与服务
    数据保险箱
    数据保险箱(Cloud Data Coffer Service,CDCS)为您提供更高安全系数的企业核心数据存储服务。您可以通过自定义过期天数的方法删除数据,避免误删带来的损害,还可以将数据跨地域存储,防止一些不可抗因素导致的数据丢失。数据保险箱支持通过控制台、API 等多样化方式快速简单接入,实现海量数据的存储管理。您可以使用数据保险箱对文件数据进行上传、下载,最终实现数据的安全存储和提取。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档