Python中json模块如何实现数据序列化和反序列化?

2026-05-21 20:492阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计627个文字,预计阅读时间需要3分钟。

Python中json模块如何实现数据序列化和反序列化?

一.+ 什么是JSON?

1.JSON是JavaScript Object Notation的缩写,是一种轻量级的数据交换格式。

2.本质上是一个字符串,是JS对象的字符串表示形式。

3.与Python中的字典非常类似,没有太多语法上的区别。

一. 什么是JSON

1. JSON是JavaScript Object Notation的缩写,它是一种轻量级数据交互格式

2. 本质是一个字符串,是JS对象的字符串表示法

3. 与python中的字典很类似,不过有一些语法上的区别

  • 没有None值,只有null值
  • utf-8的编码格式
  • 字符串必须是双引号来表达的

4. python当中的字符串要转换成json对象,要使用json库来完成

二. 导入json模块

import json

三. json模块常用方法

1. json.dumps(str, indent=4, sort_keys=True) 将一个python数据对象转换成一个json字符串

  • indent:格式化输出json数据,呈现更直观。indent=4表示缩进4个空格
  • sort_keys:json字符串按照字典的key进行排序

2. json.loads() 将一个json字符串转换成python对象,比如json字符串转换成列表、字典

四. 实例

实例1

import json

#把一个python对象转换成json字符串
a = {"name": "xiaozhai", "sex": None}

b = json.dumps(a)
print(b)
print(type(b))

#把一个json字符串转换成一个python字典
c = json.loads(b)
print(c)
print(type(c))

运行结果

{"name": "xiaozhai", "sex": null}
<class 'str'>
{'name': 'xiaozhai', 'sex': None}
<class 'dict'>

注意:print()函数为了生成可读性更好的输出, 它会省去引号并打印,如果我们在python自带的IDLE中,不加print(),会看到更好的效果

实例2:json.dumps()中indent的作用是缩进空格,sorted_keys会按照字典中key的首字母进行排序

import json

#把一个python对象转换成json字符串
a = {"name": "xiaozhai", "sex": None}

b = json.dumps(a, indent=4, sort_keys=True)
print(b)
print(type(b))

运行结果

{
"name": "xiaozhai",
"sex": null
}
<class 'str'>

五. 附录

1.python原始类型向json类型的转化对照表

Python

JSON

dict

object

list, tuple

array

str, unicode

string

int, long, float

number

True

true

False

false

None

null

2.json类型转换到python类型的转化对照表

JSON

Python

object

dict

array

list

string

unicode

number(int)

int, long

number(real)

float

true

True

false

False

Python中json模块如何实现数据序列化和反序列化?

null

None

参考文章

​​www.runoob.com/python/python-json.html​​

​​www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000/001434499490767fe5a0e31e17e44b69dcd1196f7ec6fc6000​​


本文共计627个文字,预计阅读时间需要3分钟。

Python中json模块如何实现数据序列化和反序列化?

一.+ 什么是JSON?

1.JSON是JavaScript Object Notation的缩写,是一种轻量级的数据交换格式。

2.本质上是一个字符串,是JS对象的字符串表示形式。

3.与Python中的字典非常类似,没有太多语法上的区别。

一. 什么是JSON

1. JSON是JavaScript Object Notation的缩写,它是一种轻量级数据交互格式

2. 本质是一个字符串,是JS对象的字符串表示法

3. 与python中的字典很类似,不过有一些语法上的区别

  • 没有None值,只有null值
  • utf-8的编码格式
  • 字符串必须是双引号来表达的

4. python当中的字符串要转换成json对象,要使用json库来完成

二. 导入json模块

import json

三. json模块常用方法

1. json.dumps(str, indent=4, sort_keys=True) 将一个python数据对象转换成一个json字符串

  • indent:格式化输出json数据,呈现更直观。indent=4表示缩进4个空格
  • sort_keys:json字符串按照字典的key进行排序

2. json.loads() 将一个json字符串转换成python对象,比如json字符串转换成列表、字典

四. 实例

实例1

import json

#把一个python对象转换成json字符串
a = {"name": "xiaozhai", "sex": None}

b = json.dumps(a)
print(b)
print(type(b))

#把一个json字符串转换成一个python字典
c = json.loads(b)
print(c)
print(type(c))

运行结果

{"name": "xiaozhai", "sex": null}
<class 'str'>
{'name': 'xiaozhai', 'sex': None}
<class 'dict'>

注意:print()函数为了生成可读性更好的输出, 它会省去引号并打印,如果我们在python自带的IDLE中,不加print(),会看到更好的效果

实例2:json.dumps()中indent的作用是缩进空格,sorted_keys会按照字典中key的首字母进行排序

import json

#把一个python对象转换成json字符串
a = {"name": "xiaozhai", "sex": None}

b = json.dumps(a, indent=4, sort_keys=True)
print(b)
print(type(b))

运行结果

{
"name": "xiaozhai",
"sex": null
}
<class 'str'>

五. 附录

1.python原始类型向json类型的转化对照表

Python

JSON

dict

object

list, tuple

array

str, unicode

string

int, long, float

number

True

true

False

false

None

null

2.json类型转换到python类型的转化对照表

JSON

Python

object

dict

array

list

string

unicode

number(int)

int, long

number(real)

float

true

True

false

False

Python中json模块如何实现数据序列化和反序列化?

null

None

参考文章

​​www.runoob.com/python/python-json.html​​

​​www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000/001434499490767fe5a0e31e17e44b69dcd1196f7ec6fc6000​​