博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python --- json模块和pickle模块详解
阅读量:6282 次
发布时间:2019-06-22

本文共 1630 字,大约阅读时间需要 5 分钟。

 

  json:( 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 jsonfilename = "test.json"with open(filename, 'r') as fp:    dict_1 = json.load(fp)    print(type(dict_1))    print(dict_1)>>> 
>>> {
'b': 2, 'a': 1, 'd': 4, 'c': 3}

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

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

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

import jsonfilename = "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() ---

 

转载于:https://www.cnblogs.com/God-Li/p/7397091.html

你可能感兴趣的文章
初探Angular6.x---进入用户编辑模块
查看>>
计算机基础知识复习
查看>>
【前端词典】实现 Canvas 下雪背景引发的性能思考
查看>>
大佬是怎么思考设计MySQL优化方案的?
查看>>
<三体> 给岁月以文明, 给时光以生命
查看>>
Android开发 - 掌握ConstraintLayout(九)分组(Group)
查看>>
springboot+logback日志异步数据库
查看>>
Typescript教程之函数
查看>>
Android 高效安全加载图片
查看>>
vue中数组变动不被监测问题
查看>>
3.31
查看>>
类对象定义 二
查看>>
收费视频网站Netflix:用户到底想要“点”什么?
查看>>
MacOS High Sierra 12 13系统转dmg格式
查看>>
关于再次查看已做的多选题状态逻辑问题
查看>>
动态下拉菜单,非hover
查看>>
政府安全资讯精选 2017年第十六期 工信部发布关于规范互联网信息服务使用域名的通知;俄罗斯拟建立备用DNS;Google打击安卓应用在未经同意情况下收集个人信...
查看>>
简单易懂的谈谈 javascript 中的继承
查看>>
iOS汇编基础(四)指针和macho文件
查看>>
Laravel 技巧锦集
查看>>