python --- json模块和pickle模块详解

简介:   json:JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式(用于数据序列化和反序列化)。(适用于多种编程语言,可以与其他编程语言做数据交换)  pickle:用于对Python对象结构进行序列化和反序列化。

 

  json:JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式(用于数据序列化和反序列化)。(适用于多种编程语言,可以与其他编程语言做数据交换)

  pickle:用于对Python对象结构进行序列化和反序列化。(只适用于python)

  对于人类而言,json是人类可读的,而pickle不是。

 

  json常用方法(支持列表,字典,元组等基本数据类型):

    dumps() --- 将传入的对象序列化。

      调用:json.dumps(object)

      例如(将列表,字典等不能直接写入文件的数据序列化成字符串):

>>> json.dumps([1,2,3,4])
'[1, 2, 3, 4]'
>>> json.dumps({'a':1, 'b':2, 'c':3, 'd':4})
'{"a": 1, "c": 3, "b": 2, "d": 4}'

    dump() --- 将传入的对象序列化并写入文件。

      调用:json.dump(object, fp)

      例如:

 1 import json
 2 
 3 list_1 = [1, 2, 3, 4]
 4 dict_1 = {"a": 1, "c": 3, "b": 2, "d": 4}
 5 
 6 filename = "test.json"
 7 
 8 '''
 9 with open(filename, 'w') as fp:
10     fp.write(json.dumps(list_1))
11     fp.write(json.dumps(dict_1))
12 '''
13 
14 #等同与上面注释中的代码
15 with open(filename, 'w') as fp:
16     json.dump(list_1, fp)
17     json.dump(dict_1, fp)
View Code

    

    test.json文件中的数据:

{"c": 3, "d": 4, "b": 2, "a": 1}

    load() --- 加载一杯存储在文件中的json数据。

      调用:json.load(fp)

      例如(是json.loads()的封装,可以发现数据加载回来后,数据类型没有发生变化):

import json

filename = "test.json"
with open(filename, 'r') as fp:
    dict_1 = json.load(fp)
    print(type(dict_1))
    print(dict_1)


>>> <class 'dict'>
>>> {'b': 2, 'a': 1, 'd': 4, 'c': 3}

    loads() --- 加载python数据。

      调用:json.loads(s) (s指从文件中读出来的数据)

      例如(相当于先读取再加载):

import json

filename = "test.json"
with open(filename, 'r') as fp:
    s = fp.read(fp) 
    dict_1 = json.loads(s)
    print(type(dict_1))
    print(dict_1)

 

  pickle常用方法(使用等同于json中方法的使用,不过pickle支持更为复杂的数据类型,如果你的数据只用于python程序,推荐使用pickle):

    dumps() ---

    dump() ---

    load() ---  

    loads() ---

 

目录
相关文章
|
15天前
|
安全 大数据 程序员
Python operator模块的methodcaller:一行代码搞定对象方法调用的黑科技
`operator.methodcaller`是Python中处理对象方法调用的高效工具,替代冗长Lambda,提升代码可读性与性能。适用于数据过滤、排序、转换等场景,支持参数传递与链式调用,是函数式编程的隐藏利器。
54 4
|
9天前
|
存储 数据库 开发者
Python SQLite模块:轻量级数据库的实战指南
本文深入讲解Python内置sqlite3模块的实战应用,涵盖数据库连接、CRUD操作、事务管理、性能优化及高级特性,结合完整案例,助你快速掌握SQLite在小型项目中的高效使用,是Python开发者必备的轻量级数据库指南。
91 0
|
2月前
|
存储 安全 数据处理
Python 内置模块 collections 详解
`collections` 是 Python 内置模块,提供多种高效数据类型,如 `namedtuple`、`deque`、`Counter` 等,帮助开发者优化数据处理流程,提升代码可读性与性能,适用于复杂数据结构管理与高效操作场景。
104 0
|
3月前
|
数据安全/隐私保护 Python
抖音私信脚本app,协议私信群发工具,抖音python私信模块
这个实现包含三个主要模块:抖音私信核心功能类、辅助工具类和主程序入口。核心功能包括登录
|
6月前
|
Python
Python教程:os 与 sys 模块详细用法
os 模块用于与操作系统交互,主要涉及夹操作、路径操作和其他操作。例如,`os.rename()` 重命名文件,`os.mkdir()` 创建文件夹,`os.path.abspath()` 获取文件绝对路径等。sys 模块则用于与 Python 解释器交互,常用功能如 `sys.path` 查看模块搜索路径,`sys.platform` 检测操作系统等。这些模块提供了丰富的工具,便于开发中处理系统和文件相关任务。
240 14
|
Python 人工智能 数据可视化
Python模块与包(八)
Python模块与包(八)
112 0
Python模块与包(八)
|
11月前
|
开发者 Python
如何在Python中管理模块和包的依赖关系?
在实际开发中,通常会结合多种方法来管理模块和包的依赖关系,以确保项目的顺利进行和可维护性。同时,要及时更新和解决依赖冲突等问题,以保证代码的稳定性和可靠性
320 62
|
11月前
|
Python
Python的模块和包
总之,模块和包是 Python 编程中非常重要的概念,掌握它们可以帮助我们更好地组织和管理代码,提高开发效率和代码质量
222 61
|
11月前
|
数据可视化 Python
如何在Python中解决模块和包的依赖冲突?
解决模块和包的依赖冲突需要综合运用多种方法,并且需要团队成员的共同努力和协作。通过合理的管理和解决冲突,可以提高项目的稳定性和可扩展性
|
11月前
|
测试技术 Python
手动解决Python模块和包依赖冲突的具体步骤是什么?
需要注意的是,手动解决依赖冲突可能需要一定的时间和经验,并且需要谨慎操作,避免引入新的问题。在实际操作中,还可以结合使用其他方法,如虚拟环境等,来更好地管理和解决依赖冲突😉。

热门文章

最新文章

推荐镜像

更多