pyhon的json模块

一、json格式介绍

json格式是一种轻量级别的数据交换格式,容易被人识别和机器用来解析,它的全称叫做javaScript Object Notation


python json模块提供了api接口,可以将内存中的python对象转化为一个串行化表示,被叫做json。json被广泛的应用于ajax应用中的web服务器和客户端之间的通信,也可以用户其他程序的应用中。


二、json模块编码

json.dumps方法 encoded

import json
l=['iplaypython',[1,2,3], {'name':'xiaoming'}]
encoded_json = json.dumps(l)
print repr(l)
['iplaypython', [1, 2, 3], {'name': 'xiaoming'}]
print encoded_json
["iplaypython", [1, 2, 3], {"name": "xiaoming"}]

这样就将一个list列表对象,进行了json格式的编码转换

python          json

dict               object

list,tuple       array

str,unicode   string

int,long,float    number

true                true

false              false

none             null



三、json模块解码

json.loads()函数的解析方法 decoding

>>>print encoded_json
["iplaypython", [1, 2, 3], {"name": "xiaoming"}]
>>>decode_json = json.loads(encoded_json)
>>>print type(decode_json)
<type 'list'>
>>>print decode_json
[u'iplaypython', [1, 2, 3], {u'name': u'xiaoming'}]

json                  python

oject                dict

array               list

string              unicode

number(int)     int,long

number(real)   float

true                  true

false                false

null                  none



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

data1 = {'b':789,'c':456,'a':123}
data2 = {'a':123,'b':789,'c':456}
d1 = json.dumps(data1,sort_keys=True)
d2 = json.dumps(data2)
d3 = json.dumps(data2,sort_keys=True)
print d1
print d2
print d3
print d1==d2
print d1==d3


输出

{"a": 123, "b": 789, "c": 456}
{"a": 123, "c": 456, "b": 789}
{"a": 123, "b": 789, "c": 456}
False
True


indent参数是缩进的意思,它可以使得数据存储的格式变得更加优雅。

data1 = {'b':789,'c':456,'a':123}
d1 = json.dumps(data1,sort_keys=True,indent=4)
print d1

输出:

{
    "a": 123,
    "b": 789,
    "c": 456
}

输出的数据被格式化之后,变得可读性更强,但是却是通过增加一些冗余的空白格来进行填充的。json主要是作为一种数据通信的格式存在的,而网络通信是很在乎数据的大小的,无用的空格会占据很多通信带宽,所以适当时候也要对数据进行压缩。separator参数可以起到这样的作用,该参数传递是一个元组,包含分割对象的字符串。

print 'DATA:', repr(data)
print 'repr(data)             :', len(repr(data))
print 'dumps(data)            :', len(json.dumps(data))
print 'dumps(data, indent=2)  :', len(json.dumps(data, indent=4))
print 'dumps(data, separators):', len(json.dumps(data, separators=(',',':')))


输出

DATA: {'a': 123, 'c': 456, 'b': 789}
repr(data)             : 30
dumps(data)            : 30
dumps(data, indent=2)  : 46
dumps(data, separators): 25

通过移除多余的空白符,达到了压缩数据的目的,而且效果还是比较明显的。



另一个比较有用的dumps参数是skipkeys,默认为False。 dumps方法存储dict对象时,key必须是str类型,如果出现了其他类型的话,那么会产生TypeError异常,如果开启该参数,设为True的话,则会比较优雅的过度。

data = {'b':789,'c':456,(1,2):123}
print json.dumps(data,skipkeys=True)

输出:

{"c": 456, "b": 789}

### 回答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、付费专栏及课程。

余额充值