码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2017-08-19 18:42:10      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:没有   logs   closed   isp   close   pen   java   常用   技术分享   

 

  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() ---

 

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

标签:没有   logs   closed   isp   close   pen   java   常用   技术分享   

原文地址:http://www.cnblogs.com/God-Li/p/7397091.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!