Python JSON模块

(一)什么是json:

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

JSON建构于两种结构:

“名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。 

值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。 

这些都是常见的数据结构。事实上大部分现代计算机语言都以某种形式支持它们。这使得一种数据格式在同样基于这些结构的编程语言之间交换成为可能。

(二)Python JSON模块

Python2.6开始加入了JSON模块,无需另外下载,Python的Json模块序列化与反序列化的过程分别是 encoding和 decoding。encoding-把一个Python对象编码转换成Json字符串;decoding-把Json格式字符串解码转换成Python对象。要使用json模块必须先导入:

import json

1,简单数据类型的处理

Python JSON模块可以直接处理简单数据类型(string、unicode、int、float、list、tuple、dict)。json.dumps()方法返回一个str对象,编码过程中会存在从python原始类型向json类型的转化过程,具体的转化对照如下:


json.dumps方法提供了很多好用的参数可供选择,比较常用的有sort_keys(对dict对象进行排序,我们知道默认dict是无序存放的)、separators,indent等参数,dumps方法的定义为:

json.dump(obj, fp, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True,cls=None, indent=None, separators=None, encoding="utf-8", default=None, sort_keys=False,**kw)

使用简单的json.dumps方法对简单数据类型进行编码,例如:

Source Code: ▼ Copy
  1. obj = [[1,2,3],123,123.123,'abc',{'key1':(1,2,3),'key2':(4,5,6)}]   
  2. encodedjson = json.dumps(obj)   
  3. print 'the original list:\n',obj   
  4. print 'length of obj is:',len(repr(obj))
  5. print 'repr(obj),replace whiteblank with *:\n', repr(obj).replace(' ','*')   
  6. print 'json encoded,replace whiteblank with *:\n',encodedjson.replace(' ','*')    

输出:(Python默认的item separator是‘, ’(不是','),所以list无论是转化成字符串还是json格式,成员之间都是有空格隔开的)

Source Code: ▼ Copy
  1. the original list:   
  2. [[1, 2, 3], 123, 123.123, 'abc', {'key2': (4, 5, 6), 'key1': (1, 2, 3)}]  
  3. length of obj is: 72 
  4. repr(obj),replace whiteblank with *:   
  5. [[1,*2,*3],*123,*123.123,*'abc',*{'key2':*(4,*5,*6),*'key1':*(1,*2,*3)}]   
  6. json encoded,replace whiteblank with *:   
  7. [[1,*2,*3],*123,*123.123,*"abc",*{"key2":*[4,*5,*6],*"key1":*[1,*2,*3]}]   
  8. <type 'list'>  

我们接下来在对encodedjson进行decode,得到原始数据,需要使用的json.loads()函数。loads方法返回了原始的对象,但是仍然发生了一些数据类型的转化,上例中‘abc’转化为了unicode类型。需要注意的是,json字符串中的字典类型的key必须要用双引号“”json.loads()才能正常解析。从json到python的类型转化对照如下:


Source Code:
  • 14
    点赞
  • 74
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,你想了解关于Python中的json模块的一些信息,对吧? json模块Python标准库中的一个模块,用于解析和生成JSON(JavaScript Object Notation)数据格式。JSON是一种轻量级的数据交换格式,易于阅读和编写,也易于机器解析和生成。 使用json模块,可以将Python对象(如字典、列表等)与JSON数据格式进行相互转换。具体来说,可以使用json.dumps()函数将Python对象转换为JSON格式的字符串,使用json.loads()函数将JSON格式的字符串转换为Python对象。 下面是一个简单的示例代码,演示了如何使用json模块Python对象转换为JSON格式的字符串,并将JSON格式的字符串转换为Python对象: ```python import json # 将Python对象转换为JSON格式的字符串 data = {"name": "Alice", "age": 30} json_str = json.dumps(data) print(json_str) # 输出: {"name": "Alice", "age": 30} # 将JSON格式的字符串转换为Python对象 data2 = json.loads(json_str) print(data2) # 输出: {'name': 'Alice', 'age': 30} ``` 希望这个简要的介绍能够帮助你更好地了解Python中的json模块。 ### 回答2: Pythonjson模块是用来处理JSON数据的模块JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于将数据从一个系统传递到另一个系统。 通过json模块,我们可以将Python的数据结构(如字典、列表)转换为JSON格式的字符串,并且可以将JSON格式的字符串转换为Python的数据结构。json模块提供了loads()函数和dumps()函数来完成这两种转换。 loads()函数可以将JSON格式的字符串转换为Python的数据结构。例如,将'{"name": "Amy", "age": 18}'这样的JSON字符串转换为一个字典{'name': 'Amy', 'age': 18}'。 dumps()函数可以将Python的数据结构转换为JSON格式的字符串。例如,将字典{'name': 'Amy', 'age': 18}'转换为'{"name": "Amy", "age": 18}'这样的JSON字符串。 除了基本的转换功能,json模块还提供了其他一些功能,如处理JSON中的null值、将JSON数据写入文件、从文件读取JSON数据等。 总之,json模块Python中起着重要的作用,它可以方便地将Python的数据结构与JSON格式进行互相转换,使得数据在不同系统之间的传递更加便捷。 ### 回答3: Pythonjson模块是用来处理JSON(JavaScript Object Notation)数据的模块JSON是一种常用的数据格式,它以键值对的形式表示数据,并且易于阅读和解析。 json模块提供了一些函数和方法,用于将Python对象转换为JSON格式的字符串,并且可以将JSON字符串转换回Python对象。它还可以简化与JSON数据的交互,使得读取、写入和解析JSON数据变得更加方便。 使用json模块,可以对JSON数据进行以下操作: 1. 序列化:将Python对象转换为JSON字符串。可以使用`json.dumps()`函数来实现。例如,将字典对象转换为JSON字符串:`json.dumps({'name': 'John', 'age': 25})`。 2. 反序列化:将JSON字符串转换回Python对象。可以使用`json.loads()`函数来实现。例如,将JSON字符串转换为字典对象:`json.loads('{"name": "John", "age": 25}')`。 3. 读取JSON文件:可以使用`json.load()`函数从JSON文件中读取数据,并将其转换为Python对象。 4. 写入JSON文件:可以使用`json.dump()`函数将Python对象写入JSON文件中。 json模块还提供了其他一些功能,如处理嵌套JSON数据、处理特殊数据类型(如日期、日期时间等)以及自定义编码和解码规则等。 总之,Pythonjson模块提供了一种方便和灵活的方式来处理JSON数据。无论是将Python对象序列化为JSON字符串,还是将JSON字符串反序列化为Python对象,json模块都是一个十分实用的工具。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值