python对象转为json串的函数,json对象转为字符串

  python对象转为json串的函数,json对象转为字符串

  全部展开

  Json简介:Json,全称是JavaScript Object Notation,是3231313愚人节236313431303231363533 e4b 893 e 5e 19 e 313333336393564轻量级数据交换格式Json是AJAX中web服务器和客户端通信使用最广泛的数据格式。现在在http请求中经常用到,自然要学习关于json的各种知识。Python官网:https://docs.python.org/2/library/JSON.html? highlight=JSON # module-JSON

  使用Json API:在2.6版本之前,您必须下载并安装软件包才能使用python。类似于当前RF中使用的硒库。但在2.6中,官方文件(docs.python.org/2.6/whats New/2.6 . html)显示“多重处理、json等重要新软件包与python 3一起是标准生产线”。如果那里安装了python2.6或更高版本的童鞋,可以在需要的地方直接在import json上使用,不需要下载json包。看看安装目录中Lib下的这两个包。(点击仔细阅读这些源代码以获得更多。))请参考以下文章。

  Python2.6及以后的版本支持Json编码和解码,Python的大部分内置类型都支持向Json的转换。最简单的例子如下。

  importjsondata={ spam : foo , parrot :42 } in _ JSON=JSON . dumps(data)# encodethedatain _ JSON

  编码过程是将python对象转换成json对象的过程。两个常用的函数是dump和dump函数。这两个函数的唯一区别是dump将python对象转换成json对象,生成fp的文件流,dumps生成字符串。

  其他参数的使用是相同的。以下是研究的一部分。

  dic1={type:dic1 , username:loleina , age:16}

  JSON_DIC1=JSON.dumps(DIC1))))).

  打印json_dic1

  jon_dic2=JSON.dumps(diC1,sort_keys=True,indent=4,分隔符=(,, : ),编码=gbk)

  打印json_dic2

  执行结果如下。

  如果将实例的关键字 username 的值替换为中文单词“test”,第一次不带参数的转换会导致错误,但第二次带参数时会正常工作。

  其实这是一个知道函数参数的过程,给出了一些常用的参数。

  Skipkeys:默认值为False。如果dict的keys中的数据不是python的基本类型(str,unicode,int,long,float,bool,None),则为TypeError。如果此时设置为True,将跳过这些键。

  确保_ascii:默认值为True。如果dict包含非ascii字符,它将生成类似于\uXXXX的显示数据。如果设置为False,将正常显示。

  缩进:必须是非负整数。如果为0或为空,数据将显示在一行中。否则,该行将换行,前面的空格将显示缩进的数量。这种打印的json数据也称为漂亮打印的json。

  分隔符(分隔符实际上是一组(item_separator,dict_separator),默认值是),(,)和():)。这意味着字典中的键由“,”分隔,键和值由“:”分隔。

  编码:默认为UTF-8,用于设置json数据的编码。

  Sort _ keys:根据键值对数据进行排序。

  解码过程是将json对象转换成python对象的过程。两个常用的函数是loads和load函数。与转储和转储的区别相同。

  =中心

  if __name__==__main__ :

  #将python对象测试转换为json对象

  Test=[{username: test , age:16},(2,3),1]

  打印类型(测试)

  python_to_json=json.dumps(test,确保_ascii=False)

  打印python_to_json

  打印类型(python_to_json)

  #将json对象转换为python对象

  JSON _ to _ python=JSON . loads(python _ to _ JSON)

  打印json_to_python

  打印类型(json_to_python)

  运行结果如下:

  从上面两个例子的测试结果可以看出,python的一些基本类型通过编码后,元组类型被转换为列表类型,在转换回python对象时,列表类型没有转换回元组类型,编码格式改为Unicode编码。具体来说,类型改变规则如下:

  Python - Json

  Json - Python

  用Json处理中文问题:

  关于python字符串的处理,我觉得再深入研究一下,可以写两篇文章(其实我还没有完全理解)。这里我主要总结一下使用python2.7.11处理json数据的问题。在接口测试的前期,最需要处理的就是将数据组装成各种协议的消息,然后发送出去。然后解析返回的消息后,将数据封装在json中,嵌入到http的主体中,并发送给web服务器,然后服务器处理后返回json数据结果的问题。这里需要考虑如何在json中组装和解析中文数据。以下是基础学习的总结:

  首先,Python 2.7.11默认的编码格式是ascii编码,而python3已经是unicode了。学习编解码的时候有一些乱码,也有一些列表或者字典或者元组类型的中文显示为unicode的问题。出现乱码时,首先要看当前字符编码格式是什么,然后再看当前文件编码格式是什么,或者没有设置文件格式时,看IDE默认的编码格式是什么。当然,最推崇的方式是为每种编码指定文件编码格式,比如在文件前设置# coding=utf-8。

  其次,Python中字符串的表示是unicode编码。因此,编码转换时通常需要使用unicode作为中间编码,即先将其他编码字符串解码成unicode,再从unicode编码成另一种编码。decode的作用是把其他代码编码的字符串转换成unicode代码,比如str1.decode(gb2312 ),意思是把gb2312编码的字符串转换成unicode代码。encode的作用是将unicode编码转换成其他编码字符串,比如str2.encode(gb2312 ),意思是将unicode编码字符串str2转换成gb2312编码。所以在转码的时候,首先要了解字符串str是什么编码,然后解码成unicode,再编码成其他编码。

  第三:将json数据转换成python数据后,一般会得到一个dict类型的变量。此时内部数据都是unicode编码的,所以中文的显示看着很痛苦。但是,在获得dict的每个键的值后,可以正常显示中文,如下所示:

  # coding=utf-8导入json

  导入sysif __name__==__main__ :

  #将python对象测试转换为json对象

  Test={username: test , age:16}

  打印类型(测试)

  python_to_json=json.dumps(test,确保_ascii=False)

  打印python_to_json

  打印类型(python_to_json)

  #将json对象转换为python对象

  JSON _ to _ python=JSON . loads(python _ to _ JSON)

  打印类型(json_to_python)

  打印json_to_python[用户名]

  运行结果:

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: