位置: 编程技术 - 正文

深入理解python对json的操作总结(深入理解python特性 pdf)

编辑:rootadmin

推荐整理分享深入理解python对json的操作总结(深入理解python特性 pdf),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:浅谈python,对python的理解800字,对python的理解,对python的总结,浅谈python,浅谈python,对python的总结,深入理解python特性 pdf,内容如对您有帮助,希望把文章链接给更多的朋友!

Json简介:Json,全名 JavaScript Object Notation,是一种轻量级的数据交换格式。Json最广泛的应用是作为AJAX中web服务器和客户端的通讯的数据格式。现在也常用于http请求中,所以对json的各种学习,是自然而然的事情。Python的官网网址: API 使用:python在版本2.6之前,是需要先下载包,安装后才能使用的,有点类似现在的RF内使用SeleniumLibrary一样。但是在2.6中,官方文档( 和json,但是跟python 3比,2.6的这些包不会引进更多的新功能。"于是安装python2.6以上版本的童鞋,可以不需要下载json包,直接在所需的地方就import json 即可使用,在安装目录下的Lib 下,看到这两个包(点进去仔细阅读这些源码,会有更多的收获,)如下文所示:

Python2.6 以上版本支持Json的编码和解码,支持python的大部分内置类型与Json进行转换。最简单的例子如下所示:

Encode过程,是把python对象转换成json对象的一个过程,常用的两个函数是dumps和dump函数。两个函数的唯一区别就是dump把python对象转换成json对象生成一个fp的文件流,而dumps则是生成了一个字符串:

其他参数的使用都是一样的。以下是部分学习的代码片段:

运行结果如下所示:

如果把实例中的key'username'的value换成中文的“测试”,则用第一次不加参数转换则会报错,但是用第二个加参数的就能正常运行。

实际上就是对函数的参数的一个理解过程,下面列出几个常用的参数:

Skipkeys:默认值是False,如果dict的keys内的数据不是python的基本类型(str,unicode,int,long,float,bool,None),设置为False时,就会报TypeError的错误。此时设置成True,则会跳过这类key

ensure_ascii:默认值True,如果dict内含有non-ASCII的字符,则会类似uXXXX的显示数据,设置成False后,就能正常显示

indent:应该是一个非负的整型,如果是0,或者为空,则一行显示数据,否则会换行且按照indent的数量显示前面的空白,这样打印出来的json数据也叫pretty-printed json

深入理解python对json的操作总结(深入理解python特性 pdf)

separators:分隔符,实际上是(item_separator, dict_separator)的一个元组,默认的就是(',',':');这表示dictionary内keys之间用“,”隔开,而KEY和value之间用“:”隔开。

encoding:默认是UTF-8,设置json数据的编码方式。

sort_keys:将数据根据keys的值进行排序。

Decode过程,是把json对象转换成python对象的一个过程,常用的两个函数是loads和load函数。区别跟dump和dumps是一样的。

运行结果如下:

从上面2个例子的测试结果可以看到,python的一些基本类型通过encode之后,tuple类型就转成了list类型了,再将其转回为python对象时,list类型也并没有转回成tuple类型,而且编码格式也发生了变化,变成了Unicode编码。具体转化时,类型变化规则如下所示:

Python-->Json

Json-->Python

Json处理中文问题:

关于python字符串的处理问题,如果深入的研究下去,我觉得可以写2篇文章了(实际上自己还没整很明白),在这里主要还是总结下使用python2.7.处理json数据的问题。前期做接口测试,处理最多的事情就是,把数据组装成各种协议的报文,然后发送出去。然后对返回的报文进行解析,后面就遇到将数据封装在json内嵌入在http的body内发送到web服务器,然后服务器处理完后,返回json数据结果的问题。在这里面就需要考虑json里有中文数据,怎么进行组装和怎么进行解析,以下是基础学习的一点总结:

第一:Python 2.7.的默认编码格式是ascii编码,而python3的已经是unicode,在学习编解码的时,有出现乱码的问题,也有出现list或者dictionary或者tuple类型内的中文显示为unicode的问题。出现乱码的时候,应该先看下当前字符编码格式是什么,再看下当前文件编码格式是什么,或者没有设置文件格式时,查看下IDE的默认编码格式是什么。最推崇的方式当然是每次编码,都对文件编码格式进行指定,如在文件前 设置# coding= utf-8。

第二:字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码。decode的作用是将其他编码的字符串转换成unicode编码,如str1.decode('gb'),表示将gb编码的字符串str1转换成unicode编码。encode的作用是将unicode编码转换成其他编码的字符串,如str2.encode('gb'),表示将unicode编码的字符串str2转换成gb编码。因此,转码的时候一定要先搞明白,字符串str是什么编码,然后decode成unicode,然后再encode成其他编码

第三:将json数据转换成python数据后,一般会得到一个dict类型的变量,此时内部的数据都是unicode编码,所以中文的显示看着很痛苦,但是对于dict得到每个key的value后,中文就能正常显示了,如下所示:

运行结果:

标签: 深入理解python特性 pdf

本文链接地址:https://www.jiuchutong.com/biancheng/381354.html 转载请保留说明!

上一篇:用python实现简单EXCEL数据统计的实例(用python编写)

下一篇:在 Python 应用中使用 MongoDB的方法(在python中的用法)

  • 企业技术转让享受税收优惠政策应符合哪些条件
  • 允许抵扣的进项税额分为哪几种情况
  • 印花税怎么计提和缴纳
  • 监理行业增值税税率多少
  • 在电子税务里怎么查以前年度亏损数据
  • 公司打印银行回单和对账单
  • 动物园的动物算野生动物吗
  • 珠宝属于什么行业领域
  • 开具银行资信证明
  • 企业给职工交的养老金哪里去了
  • 如何核算小企业收入
  • 多缴纳的税款不退税怎么入账
  • 实收资本取出来要交税吗?
  • 公司进项销项税差异较大
  • 应交所得税的计算例题
  • 总公司业务分公司开票是虚开吗
  • 建筑企业一般纳税人提供建筑服务属于老项目
  • 金税三期啥意思
  • 餐饮业开专票几个点
  • 三证合一地税号查询
  • 房地产开发公司注册资金要求
  • 工资先发一半
  • 收取滞纳金是行政处罚吗
  • 计提增值税的账务处理小规模
  • 基建工程施工单位罚款如何做账?
  • 社保费现金收缴管理制度
  • 苹果电脑macbookpro使用教程
  • 如何防止程序被关闭
  • 多缴的企业所得税如何处理
  • 上海个人所得税计算器
  • 笔记本怎么开wifi
  • 实习生短期意外保险能企业所得税前扣除吗?
  • mac的日历
  • php glob
  • excel2019文件加密
  • 路由器重启以后wifi不见了
  • php获取参数值的三种方式
  • 用友预收货款账务处理
  • CodeIgniter视图使用注意事项
  • 独立核算分公司和非独立核算分公司
  • 商品流通企业的经营过程分为
  • vuecli打包项目
  • 成本降低率是什么意思
  • vant表单验证并提交表单
  • python初学笔记
  • 车票怎么抵扣增值税税率
  • 社保所属期怎么填
  • 房屋租金的摊销怎么算
  • 建筑安装个人所得税征收管理办法
  • sql server 2008数据库没有备份文件恢复
  • 土地摊销年限是什么意思
  • 小微企业员工人数限制
  • 支付员工经济补偿金会计处理方式
  • 为什么白条不能打白条
  • 外贸企业进项税转出怎么申报
  • 农产品加计扣除怎么计算
  • 小额零星物资
  • 资本金与注册资金的关系
  • 什么是递延所得税?
  • Linux环境下mysql5.7.13安装教程
  • sqlserver数据库怎么导出
  • XP系统如何设置U盘启动
  • centos永久修改主机名
  • Xp输入法不见了
  • win10收不到20h2更新
  • win10无法
  • Win10预览版桌面图标和任务栏不翼而飞怎么办?
  • win7系统命令大全
  • linux不小心删除目录怎么恢复
  • OpenCV-EmguCV 在 Unity3D 中的配置
  • cocos2d开发app
  • 将目录下的文件和文件夹按类型排序
  • 简单谈谈对电信的认识
  • JavaScript实现99乘法表及隔行变色实例代码
  • js使用类
  • 广东税务待遇
  • 00后先进人物事迹简介
  • 大理市国税局
  • 开增值税发票没有销售合同也要交印花税吗
  • 开票系统红色预警情况说明怎么写
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设