python操作json(一)

Python 操作json

Json语法规则:
数据在名称/值对中
数据由逗号分隔
花括号保存对象
方括号保存数组
Json字符串本质上是一个字符串,用单引号表示

Json数据的书写格式
名称--值对,包括名称字段(在双引号中),后面跟一个冒号,然后是值:
“name”: ”zhangsan” 等价于name = “zhangsan”
Json值
值可以是
数字(整数或浮点数)
字符串(双引号括起来)
逻辑值(true或false)
数组(在方括号中)
对象(在花括号中)
null
Json对象
Json的对象是在大括号中的,
{“name”:”zhangsan”,”age”:20}
等价 name=”zhangsan” age = 20

Json数组
Json数组是在中括号中的,数组可以包含多个对象
{
"employees": [
{ "firstName":"John" , "lastName":"Doe" },
{ "firstName":"Anna" , "lastName":"Smith" },
{ "firstName":"Peter" , "lastName":"Jones" }
]
}
Employees是包含三个对象的数组

编码Json.dumps()
将一个python对象编码成json字符串,

Python的列表转换成json数组

>> json.dumps([1,2,3,"a"])
‘[1, 2, 3, "a"]‘

Python的字符串转换成json字符串

>> json.dumps("abc123")
‘"abc123"‘

Python元组转换成json数组

>> json.dumps((1,2,3,"a","b"))
‘[1, 2, 3, "a", "b"]‘

Python的字典转换成json的对象

>> json.dumps({1:"a",2:"b",3:"c"})
‘{"1": "a", "2": "b", "3": "c"}‘#注意1、2、3被加上了双引号,因为json的名称是必须要加双引号的

Python的数字(long型)转换成json的数字

>> json.dumps(13L)
‘13‘

Python的数字(int)转换成json的数字

>> json.dumps(13)
‘13‘

Python的unicode字符串转换成json的字符串

>> json.dumps(u"abC")
‘"abC"‘

Python的True转换成json的true

>> json.dumps(True)
‘true‘

Python的False转换成json的false

>> json.dumps(False)
‘false‘

Python的None转换成json的null

>> json.dumps(None)
‘null‘

>> type(json.dumps("abc"))#json本质上是一个字符串
<type ‘str‘>

怎么判断一个json 是不是合法的?
用try except
try:
json.loads(‘"abc"‘)
except Exception,e:
print e
else:
print "ok"

json.dumps()函数参数应用
sort_keys
是否按key排序,sort_keys = True升序排序

#coding=utf-8
import json
data = [ { ‘a‘:‘A‘, ‘b‘:(2, 4), ‘c‘:3.0 }]
print json.dumps(data)
print json.dumps(data, sort_keys=True)

indent
设置参数缩进显示的空格数。缩进显示使读起来更加清晰。
#coding=utf-8
import json
data = [{"a": "A", "b": [2, 4], "c": 3.0}]
print json.dumps(data, sort_keys=True, indent=3)

Separators
参数的作用是去掉逗号“,”和分号“:”后面的空格,从上面的输出果都能看到“,”与“:”后面都有个空格,这都是为了美化输出结果的作用,但是在我们传输数据的过程中,越精简越好,冗余的东西全部去掉,因此就可以加上separators参数对传输的json串进行压缩。该参数是元组格式的
import json
data = [{"a": "A", "b": [2, 4], "c": 3.0}]
print len(json.dumps(data))
去掉编码后的json串中,和:后面的空格
print len(json.dumps(data, separators=(‘,‘,‘:‘)))

skipkeys
在encoding过程中,dict对象的key只可以是基本数据类型(str,unicode,int,long,float,bool,None),如果是其他类型,那么在编码过程中就会抛出TypeError的异常。skipkeys可以跳过那些非string对象的key的处理,就是不处理
import json
data= [ { ‘a‘:‘A‘, ‘b‘:(2, 4), ‘c‘:3.0, (1,2):‘D tuple‘ } ]
print u"不设置skipkeys 参数"
try :
res1 = json.dumps(data) #skipkeys参数默认为False时
except Exception, e:
print e

print u"设置skipkeys 参数"
print json.dumps(data, skipkeys=True)

原文地址:http://blog.51cto.com/13496943/2155238

时间: 2024-08-10 15:09:33

python操作json(一)的相关文章

python操作json来存储简单的数据,pickle来操作复杂的数据

json作为不同语言间进行数据交互的媒介,在当下已经渐渐取代了之前的xml,看一波python操作json 1 # coding = ascii 2 3 import json 4 import pickle 5 import sys 6 import os 7 ''' 8 练习json,pickle 9 json类型的数据可以实现不同语言间的数据交互, 10 python3中引入python是为了实现将字典,列表等格式的数据 11 打包成字符串形式,即将其序列化,使用eg.json.dump(

python操作json

概念 序列化(Serialization):将对象的状态信息转换为可以存储或可以通过网络传输的过程,传输的格式可以是JSON.XML等.反序列化就是从存储区域(JSON,XML)读取反序列化对象的状态,重新创建该对象. JSON(JavaScript Object Notation):一种轻量级数据交换格式,相对于XML而言更简单,也易于阅读和编写,机器也方便解析和生成,Json是JavaScript中的一个子集. Python2.6开始加入了JSON模块,无需另外下载,Python的Json模

python操作json文件获取内容

写case时,将case 写到json文件比写到,写python一定要学会处理json 以下,是要处理的json 处理操作包括:打开json文件,获取json文件内容,关闭json文件,读取内容中的对应key的value { "name": "BeJson", "url": "http://www.bejson.com", "page": 88, "isNonProfit": true,

Python 操作json

Json语法规则: 数据在名称/值对中 数据由逗号分隔 花括号保存对象 方括号保存数组 Json字符串本质上是一个字符串,用单引号表示 Json数据的书写格式 名称--值对,包括名称字段(在双引号中),后面跟一个冒号,然后是值: "name": "zhangsan" 等价于name = "zhangsan" Json值 值可以是 数字(整数或浮点数) 字符串(双引号括起来) 逻辑值(true或false) 数组(在方括号中) 对象(在花括号中)

python对json的相关操作以及json模块的简要分析

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析和生成. JSON有两种结构: 第一种就是"名称/值"对的集合.在python中相当于字典类型,在其他语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array). 第二种就是值的有序列表

[转]python对json的相关操作

json官方说明参见:http://json.org/ Python操作json的标准api库参考:http://docs.python.org/library/json.html 对简单数据类型的encoding 和 decoding: 使用简单的json.dumps方法对简单数据类型进行编码,例如: 1 2 3 4 5 6 import json obj = [[1,2,3],123,123.123,'abc',{'key1':(1,2,3),'key2':(4,5,6)}] encoded

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概述以及python对json的相关操作

转载自:http://www.cnblogs.com/coser/archive/2011/12/14/2287739.html 什么是json: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析和生成.它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集.JSON采用完全独立于语言的文本格式,但

Json概述以及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等).这