码迷,mamicode.com
首页 > Web开发 > 详细

json和pickle序列化模块

时间:2018-02-09 22:18:16      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:pickle   dict   log   load   定义   数据类型   json序列化   str   使用   

一、json序列化模块

  1、序列化:将内存数据转成字符串加以保存。

  2、反序列化:将字符串转成内存数据加以读取。

data = { 北京:{
                     五道口:{
                         sohu:引擎,
                     }
                   }
               }
# dumps <-->  loads
‘‘‘
    只是把数据类型转成字符串存到内存(json.dumps,json.loads)里的意义?
    1、把你的内存数据通过网络远程共享给其他人
    2、定义了不同语言之间的交互规则
        <1> 纯文本:不能共享复杂的数据类型
        <2> xml:占空间大
        <3> json:简单,可读性好
‘‘‘
d = json.dumps(data) # 仅转成字符串  <class ‘str‘>
print(d,type(d))     # {"\u5317\u4eac": {"\u4e94\u9053\u53e3": {"sohu": "\u5f15\u64ce"}}}

d_1 = json.loads(d)  # 将字符串转成原本的数据类型  <class ‘dict‘>
print(d_1,type(d_1))           # {‘北京‘: {‘五道口‘: {‘sohu‘: ‘引擎‘}}}

# dump  <-->  load
f = open(test.json,w) # 先打开再读写
d2 = json.dump(data,f) # 转成字符串并写入文件

f1 = open(test.json,r)
d_2 = json.load(f1) # 将文件转成原来的数据类型
print(d_2)  # {‘北京‘: {‘五道口‘: {‘sohu‘: ‘引擎‘}}}

 

二、pickle序列化模块

#!/usr/bin/env python3
#-*- coding:utf-8 -*-
# write by congcong

import pickle

dict = {name:cc,age:21}
len = [python,hello,world]

# dumps <--> loads
d = pickle.dumps(dict) # 字符串转成bytes类型
print(d) # b‘\x80\x03}q\x00(X\x04\x00\x00\x00nameq\x01X\x02\x00\x00\x00ccq\x02X\x03\x00\x00\x00ageq\x03K\x15u.‘
d_1 = pickle.loads(d)  # bytes类型转为原数据类型
# print(d_1)  # {‘name‘: ‘cc‘, ‘age‘: 21}

# dump <--> load
# pk = open(‘data.pkl‘,‘wb‘)
# d2 = pickle.dump(dict,pk) # 字符串转成bytes类型,并保存到硬盘

pk_r = open(data.pkl,rb) # 将硬盘里的bytes类型转为原数据类型
d_2 = pickle.load(pk_r)
print(d_2)  #  {‘name‘: ‘cc‘, ‘age‘: 21}

‘‘‘
json 和 pickle 的区别:
    json  支持的数据类型 str ,int ,tuple , list , dict ,可跨语言
     
    pickle  支持python里所有的数据类型,但只能在python中使用

‘‘‘

 

json和pickle序列化模块

标签:pickle   dict   log   load   定义   数据类型   json序列化   str   使用   

原文地址:https://www.cnblogs.com/schut/p/8436782.html

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