深入理解Python对Json的解析_python


本文摘自php中文网,作者不言,侵删。

Json是一种常用的数据交换结构,由于轻量、易于阅读和编写等特点,在网络方面应用很广。下面这篇文章主要介绍了Python对Json解析的相关资料,需要的朋友可以参考借鉴,下面来一起看看吧。

Json简介

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。

它的格式一般是这样的:

对象是一个无序的“‘名称/值'对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值' 对”之间使用“,”(逗号)分隔。

例如下面这样:


1

{"b": "Hello", "c": null, "a": true}


它的值可以是双引号括起来的字符串(string)、数值(number)、true、false、 null、对象(object)或者数组(array)。这些结构可以嵌套。


值(value)可以是双引号括起来的字符串(string)、数值(number)、true、false、 null、对象(object)或者数组(array)。这些结构可以嵌套。

使用Python编码和解析Json

Python内置了json包来帮助我们完成对json的操作。

将Python的字典结构导出到json使用json.dumps() ,将json读成Python的字典结构,使用json.loads()

如果不是针对string操作而是对文件操作,分别使用json.load()函数和json.dump()函数。


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

import json

  

data = {

 'name' : 'ACME',

 'shares' : 100,

 'price' : 542.23

}

  

json_str = json.dumps(data)

data = json.loads(json_str)

  

# Writing JSON data to file

with open('data.json', 'w') as f:

 json.dump(data, f)

  

# Reading data back

with open('data.json', 'r') as f:

 data = json.load(f)


默认的类型对应如下:


JSONPython
objectdict
arraylist
stringunicode
number (int)int, long
number (real)float
trueTrue
falseFalse
nullNone

其他数据类型与Json之间的编码和解码

一般来说,Python对json的解析是list或dict之间的操作,如果需要其他类型与json之间转换,就需要object_hook参数。先定义一个类,将类的字典初始化成json的key-value键值对。这样,json的参数就变成了类的属性。

将一个JSON字典转换为一个Python对象Python


1

2

3

4

5

6

7

8

9

10

11

12

>>> class JSONObject:

...  def __init__(self, d):

...   self.__dict__ = d

...

>>>

>>> data = json.loads(s, object_hook=JSONObject)

>>> data.name

'ACME'

>>> data.shares

50

>>> data.price

490.1


阅读剩余部分

相关阅读 >>

Python与xml的结合实践教程

map在Python中什么意思

Python中的生成器是什么?生成器有什么用处?

Python中time模块求程序运行时间的方法实例分享

Python中logging的详细介绍(附示例)

盘点Python中断多重循环的思路

Python requests快速入门介绍

Python中divmod函数的用法

Python删除不需要的Python文件方法

Python是免费的么

更多相关阅读请进入《Python》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...