likes
comments
collection
share

大话 Python:python 基础巩固 -- python 对象与 json 对象之间的恩怨情仇

作者站长头像
站长
· 阅读数 59

众所周知,json 对象无疑是后端编程、前端数据渲染最常用的一种轻量级的数据交换格式,它更是一种独立于编程语言的文本格式。总体上来说,在 python 编程中对于 json 对象的操作主要有两种,一种是将 python 对象转换成 json 的数据格式、另一种则是将 json 对象转换成 python 对象的格式。

在 python 的内置库中默认提供了叫 json 的库用来操作 json 数据格式,还有另外一种形式通过第三方提供的 json 相关的库来操作数据对象。

1、使用内置的 json 库完成对数据格式的转换

  • json.dumps() 函数,将 python 数据对象转换成 json 格式数据,通常也可以看作是对 json 数据进行编码。
 1# 导入 json 内置库
 2import json
 3
 4if __name__ == '__main__':
 5    # 定义 python 原始数组
 6    data = [{'name':u'Python 集中营','type':u'Sir.老王'},{'name':u'Python 学习社区','type':u'Sir.老王'}]
 7    # dumps() 函数将 python 数组转换成 json 数据格式
 8    # 注意:ensure_ascii 参数设置为 False 否则会以 ascii 编码的格式输出
 9    data_json = json.dumps(data,ensure_ascii=False)
10    # 打印 json 格式的数据
11    print data_json
12    '''
13    为了使打印的数据结构更加美观,还可以再加上特殊的参数值来调整
14    sort_keys=True 开启属性排序
15    indent=4 内部元素缩进4个
16    separators=(',', ': ') 分隔符设置
17    '''
18    data_json = json.dumps(data, ensure_ascii=False, sort_keys=True, indent=4, separators=(',', ': '))
19    print data_json
  • json.loads() 函数,将 json 格式数据转换成 python 数据对象,通常也称之为对 json 数据进行解码。
1print json.loads(data_json)

2、使用 demjson 第三方库完成对数据格式的转换

demjson 库之所以被经常使用,主要是因为它可以方便的解析不规则的又类似于 json 格式的数据,demjson 对象主要有两个函数,一个是 encode() 函数进行 json 格式编码、也就是将 python 对象转换成 json 格式,另一个就是 decode() 函数将 json 格式转换成 python的数据对象。

  • demjson.decode() 函数
 1import demjson
 2'''
 3定义一个不规则的 json 格式数据,
 4类似于 javascript 中的 json 数据格式
 5'''
 6data_json = "{a:1, b:2, c:3}"
 7# json 格式解码
 8data = demjson.decode(data_json)
 9# 打印结果
10print data
11# 结果
12{'a':1, 'b':2, 'c':3}
  • demjson.encode() 函数
 1import demjson
 2# 定义 python 数组对象
 3data = [ { 'a' : 1, 'b' : 2, 'c' : 3 } ]
 4# 将其编码成 json 格式数据
 5data_json = demjson.encode(data)
 6# 在进行编码时可以指定编码格式
 7data_json = demjson.encode(data,encoding=‘utf-8’)
 8# 打印结果
 9print data_json
10# 结果
11[{"a":1,"b":2,"c":3}]

更多精彩前往微信公众号【Python 集中营】,专注后端编程实战,原创文章每天更新!

大话 Python:python 基础巩固 -- python 对象与 json 对象之间的恩怨情仇