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

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

一、json

  json,用于字符串 和 python数据类型间进行转换 

  Json模块提供了四个功能:dumps、dump、loads、load

1、json.loads()用于将字符串形式的字典,列表转换成相应的字典,列表(元祖不可以,应为其他语言中没用元祖)

import jsona="[1,2,3,4]"b='{"k1":1,"k2":2}'#当字符串为字典时{}外面必须是''单引号{}里面必须是""双引号print(json.loads(a))print(json.loads(b))[1, 2, 3, 4]{'k2': 2, 'k1': 1}

 2、json.dumps() 用于将列表,字典,元祖转换成字符串。其中元祖转变成字符串为列表形式

python中的字符串分普通字符串和unicode字符串,一般从数据库中读取的字符串会自动被转换为unicode字符串

import jsona = [1,2,3,4]b ={"k1":1,"k2":2}c = (1,2,3,4)print(json.dumps(a))print(json.dumps(b))print(json.dumps(c))

 可以看到这里输出的字符串为普通字符串,但是里面的内容却是unicode字符串的内容

要想得到字符串的真实表示,需要用到参数ensure_ascii=False(默认为True)

import jsonb = {"name":"我"}print(json.dumps(b,ensure_ascii=False)){"name": "我"}

3、 json.dump()把一个字典或列表以字符串的形式写到文件中

import jsona = [1,2,3,4]json.dump(a,open("texe.py","w"))

 4、json.load() 把在文件中以列表、字典形式保存的字符串元素读出来

import jsona = [1,2,3,4,1]ap = json.load(open("texe.py"))print(ap)

 二、pickle

   pickle   用于【特殊的字节类型】 和 【python数据类型】间进行转换

   pickle  模块提供了四个功能:dumps、dump、loads、load

1、pickle.dumps() 用于将python中特有的数据类型转换成特殊的字节类型

import picklea = [1,2,3,4]f = pickle.dumps(a)print(f)print(type(f))h = json.dumps(a)b'\x80\x03]q\x00(K\x01K\x02K\x03K\x04e.'

 2、 pickle.loads()用于将特殊字节类型转换成python特有的数据类型

import picklea = [1,2,3,4]f = pickle.dumps(a)print(f)print(type(f))print(pickle.loads(f))b'\x80\x03]q\x00(K\x01K\x02K\x03K\x04e.'
[1, 2, 3, 4]

 3、 pickle.dump()把python中特有的数据类型以特殊字节的形式写到文件中(其中文件都是以字节方式打开)

import picklea = [1,2,3,4]pickle.dump(a,open("aaa.py","wb"))

 4、json.load() 把在文件中以特殊字节保存的数据读出来

import pickleret = [1,2,3,4]pickle.dump(ret,open("aaa.py","wb"))p = pickle.load(open("aaa.py","rb"))print(p)

 ===================总结=============================

json      1、用于多语言间的相互转换

          2、无论是否写到文件中,json都是列表、字典、元祖和字符串之间的相互转换

pickle   1、只适用于python 

      2、无论是否写到文件中,pickle都是用于python中所有数据类型和只有python才能解析的特殊字节间的相互转换

      3、如果涉及到写到文件中,打开方式必须是以字节方式打开

 

posted on
2017-05-14 19:06 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/yezuhui/p/6853410.html

你可能感兴趣的文章
Google MapReduce到底解决什么问题?
查看>>
CCNP-6 OSPF试验2(BSCI)
查看>>
Excel 2013 全新的图表体验
查看>>
openstack 制作大于2TB根分区自动扩容的CENTOS镜像
查看>>
Unbuntu安装遭遇 vmware上的Easy install模式
查看>>
几个常用的ASP木马
查看>>
python分析postfix邮件日志的状态
查看>>
Mysql-5.6.x多实例配置
查看>>
psutil
查看>>
在git@osc上托管自己的代码
查看>>
机器学习算法:朴素贝叶斯
查看>>
小五思科技术学习笔记之扩展访问列表
查看>>
使用Python脚本检验文件系统数据完整性
查看>>
使用MDT部署Windows Server 2003 R2
查看>>
Redhat as5安装Mysql5.0.28
查看>>
通过TMG发布ActiveSync
查看>>
Web服务器的配置与管理(4) 配置访问权限和安全
查看>>
linux shell 脚本攻略学习4
查看>>
必胜宅急送Web app设计背后的思考
查看>>
iPhone 上如何通过 Safari 使用 Pocket
查看>>