Python中json格式数据的编码与解码方法详解

本文实例讲述了Python中json格式数据的编码与解码方法。分享给大家供大家参考,具体如下:

python从2.6版本开始内置了json数据格式的处理方法。

1、json格式数据编码

在python中,json数据格式编码使用json.dumps方法。

#!/usr/bin/env python
#coding=utf8
import json
users = [{'name': 'tom', 'age': 22}, {'name': 'anny', 'age': 18}]
#元组对象也可以
#users = ({'name': 'tom', 'age': 22}, {'name': 'anny', 'age': 18})
#输出[{"age": 22, "name": "tom"}, {"age": 18, "name": "anny"}]
print json.dumps(users)

其中users可以是元组对象,也可以是列表对象。对象内的元素可以是数字、字符串、元组、列表、None、布尔值。

#!/usr/bin/env python
#coding=utf8
import json
random = (5, [1, 2], "tom\" is good", (1, 2), 1.5, True, None)
#输出[5, [1, 2], "tom\" is good", [1, 2], 1.5, true, null]
print json.dumps(random)

2、json格式数据解码

在python中json格式数据解码使用json.loads方法,把上面的例子搬来用:

#!/usr/bin/env python
#coding=utf8
import json
random = (5, [1, 2], "tom\" is good", (1, 2), 1.5, True, None)
jsonObj = json.dumps(random)
#输出[5, [1, 2], u'tom" is good', [1, 2], 1.5, True, None]
print json.loads(jsonObj)

这里就是先对一个数据json编码,然后再将编码后的数据解码。照理说,解码后的数据应当和原先的数据一样,但是我们发现这里元组对象都被替换成列表对象了。这边就涉及到python和json互相转换的数据格式定义了。看下面两个图:

python转成json数据格式定义

json转成python数据格式定义

从上面两个图可以看出python转换成json的时候,list、tuple都会转成array,而json转成python的时候,array就只转成list了。

备注:上面两张图的内容均来源于python官方站点。json的dumps方法和loads方法也还有其他的参数可以使用。

如果需要更深入的使用,可以参考官方手册:

http://docs.python.org/2/library/json.html?highlight=json#json

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python编码操作技巧总结》、《Python图片操作技巧总结》、《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

(0)

相关推荐

  • 使用Python解析JSON数据的基本方法

    Python的json模块提供了一种很简单的方式来编码和解码JSON数据. 其中两个主要的函数是 json.dumps() 和 json.loads() , 要比其他序列化函数库如pickle的接口少得多. 下面演示如何将一个Python数据结构转换为JSON: import json data = { 'name' : 'ACME', 'shares' : 100, 'price' : 542.23 } json_str = json.dumps(data) 下面演示如何将一个JSON编码的字

  • Python操作json数据的一个简单例子

    更多的信息,可以参考python内部的json文档: python>>> help(json) 或者官方文档: http://docs.python.org/library/json.html#module-json. 下面给出一个使用python解析json的简单例子: 复制代码 代码如下: #!/usr/bin/python import json #Function:Analyze json script #Json is a script can descript data st

  • python中json格式数据输出的简单实现方法

    主要使用json模块,直接导入import json即可. 小例子如下: #coding=UTF-8 import json info={} info["code"]=1 info["id"]=1900 info["name"]='张三' info["sex"]='男' list=[info,info,info] data={} data["code"]=1 data["id"]=190

  • Python实现把json格式转换成文本或sql文件

    python如何将json格式的数据快速的转化成指定格式的数据呢?或者转换成sql文件? 下面的例子是将json格式的数据准换成以#_#分割的文本数据,也可用于生成sql文件. [root@bogon tutorial]# vi json2txt.py #-*- coding: UTF-8 -*- import json data = [] with open('./tencent_test.json') as f: for line in f: data.append(json.loads(l

  • Python中json格式数据的编码与解码方法详解

    本文实例讲述了Python中json格式数据的编码与解码方法.分享给大家供大家参考,具体如下: python从2.6版本开始内置了json数据格式的处理方法. 1.json格式数据编码 在python中,json数据格式编码使用json.dumps方法. #!/usr/bin/env python #coding=utf8 import json users = [{'name': 'tom', 'age': 22}, {'name': 'anny', 'age': 18}] #元组对象也可以

  • 对Python中一维向量和一维向量转置相乘的方法详解

    在Python中有时会碰到需要一个一维列向量(n*1)与另一个一维列向量(n*1)的转置(1*n)相乘,得到一个n*n的矩阵的情况.但是在python中, 我们发现,无论是".T"还是"np.transpose"都无法实现一维向量的转置,相比之下,Matlab一句" a' "就能实现了. 那怎么实现呢?我找了个方法.请看: 即,我们把向量reshape一下,如此便实现了一维向量与一维向量转置相乘为矩阵的目的. 若大家有其他方法望告知. 以上这篇对

  • PHP 实现 JSON 数据的编码和解码操作详解

    本文实例讲述了PHP 实现 JSON 数据的编码和解码操作.分享给大家供大家参考,具体如下: JSON 的使用场景: 数据表一个字段需要记录多个信息,如记录关于用户的其他信息 数据传输,如:API接口返回值.Ajax中实现异步加载 配置文件,如 composer.json 包管理配置文件 在 PHP 中使用 JSON: JSON 使用最频繁的两个操作就是编码和解析数据,PHP 官方提供了以下 2 个函数实现这两个操作: json_encode() json_decode() Encoding a

  • python中json格式处理和字典的关系

    目录 1.json文件读取后的操作 2.python递归路径文件夹中的所有文件 3.json文件的读取与写入新文件 前言:作为测试工程师都知道,json格式的文件使我们常用的一种数据存放形式,那么对于python文件的处理,python语言有着得天独厚的条件,json的本质是键值对形式存储的,这就非常像python语言中的字典,所以有很多字典形式的函数与方法,是直接可以使用的. 今天我们先讲一下编写python脚本处理json的核心功能,有些散乱,后期在进行整体脚本的编写. 1.json文件读取

  • Java Servlet生成JSON格式数据并用jQuery显示的方法

    本文实例讲述了Java Servlet生成JSON格式数据并用jQuery显示的方法.分享给大家供大家参考,具体如下: 1.Servlet通过json-lib生成JSON格式的数据 import java.io.IOException; import java.io.PrintWriter; import java.util.*; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet;

  • python中urllib.request和requests的使用及区别详解

    urllib.request 我们都知道,urlopen()方法能发起最基本对的请求发起,但仅仅这些在我们的实际应用中一般都是不够的,可能我们需要加入headers之类的参数,那需要用功能更为强大的Request类来构建了 在不需要任何其他参数配置的时候,可直接通过urlopen()方法来发起一个简单的web请求 发起一个简单的请求 import urllib.request url='https://www.douban.com' webPage=urllib.request.urlopen(

  • 基于Python中单例模式的几种实现方式及优化详解

    单例模式 单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在.当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场. 比如,某个服务器程序的配置信息存放在一个文件中,客户端通过一个 AppConfig 的类来读取配置文件的信息.如果在程序运行期间,有很多地方都需要使用配置文件的内容,也就是说,很多地方都需要创建 AppConfig 对象的实例,这就导致系统中存在多个 AppConfig 的实例对象,而这样会严重浪

  • 对python中的float除法和整除法的实例详解

    从python2.2开始,便有两种除法运算符:"/"."//".两者最大区别在: python2.2前的版本和python2.2以后3.0以前的版本的默认情况下,"/"所做的除法是以一种两个数或者多个数出现一个浮点数结果就以浮点数的形式表示,即float除法 "//"所做的除法则不相同,"//"不管两者出现任何数,都以整除结果为准,不对小数部分进行处理,直接抛弃,也就是整除法 以下是笔者在编译器测试的数据,

  • Python中关于元组 集合 字符串 函数 异常处理的全面详解

    目录 元组 集合 字符串 1.字符串的驻留机制 2.常用操作 函数 1.函数的优点: 2.函数的创建:def 函数名([输入参数]) 3.函数的参数传递: 4.函数的返回值: 5.函数的参数定义: 6.变量的作用区域 7.递归函数:函数体内套用该函数本身 8.将函数存储在模块中 9.函数编写指南: Bug 1.Bug常见类型 2.常见异常类型 3.python异常处理机制 pycharm开发环境的调试 编程思想 (1)两种编程思想 (2)类和对象的创建 元组 元组是不可变序列 多任务环境下,同时

随机推荐