python中json的基本用法

Json简介:Json,全名JavaScript Object Nation,是一种轻量级的数据交换格式。 具体含义见百度百科。

Json最为广泛的应用是作为AJAX中web服务器和客户端的通讯的数据格式。在http请求中也经常用到。

在 JS 语言中,一切都是对象。因此,任何支持的类型都可以通过 JSON 来表示,例如字符串、数字、对象、数组等。但是对象数组是比较特殊且常用的两种类型。

在python中,主要体现在几个函数中:json.dumps(),json.dump(),json.loads(),json.load().见代码:

函数用法可以参考菜鸟教程:http://www.runoob.com/python3/python3-json.html,

http://www.runoob.com/python/python-json.html。

 

import json

#json.dumps()用法  将python对象编码成json字符串。
#语法

'''
参数很多
json.dumps(obj, 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)
'''

"""
#python对象与json对象的互相转换

#json对象的类型为 ‘str’
dic = {'a':'arts','b':'bird'}
j1 = json.dumps(dic)     # json.dump()将字典类型转换为str字符串类型

print j1        # {"a": "arts", "b": "bird"}
print type(j1)  # <type 'str'>

#sort_keys参数置为True时,生成的json对象是按键排序的,sort_keys默认为False:
dic2 = {'d':'4','b':'2','c':'3','a':123}

j2 = json.dumps(dic2,sort_keys=True)
print j2                # {"a": 123, "b": "2", "c": "3", "d": "4"}

#dumps对中文使用ascii编码方式,通过将ensure_ascii参数设置为False可输出中文:
dic3 = {u'你':'4',u'我':'2',u'他':'3',u'哈':123}
j3 = json.dumps(dic3,sort_keys=True,ensure_ascii=False)

print j3

# 通过indent参数可以设置json对象的缩进格式:
dic4 = {'b':'I','a':123,'c':'100'}
j4 = json.dumps(dic4,sort_keys=True,indent=4)
print j4

#通过separators参数可以设置json对象的分隔符:
dic5 = {'b':'I','a':123,'c':'100'}
j5 = json.dumps(dic5,sort_keys=True,separators=('**','@'))
print j5

#列表转化为json对象
list1 = [1,2,'big','a','ha']
j6 = json.dumps(list1)
print j6,type(j6)    # [1, 2, "big", "a", "ha"] <type 'str'>

# 将字典转换为json字符串时,key需为数字或字母,(即键必须是一个字符串)否则报错,可通过skipkeys参数跳过这些键:
dic7 = {1:'one',2.9:'pop',(2,3):'hahahh'}
j7 = json.dumps(dic7,skipkeys=True)
print j7                    # {"1": "one", "2.9": "pop"}

#元祖转化为json
tuple1 = (1,22,2)
j8 = json.dumps(tuple1)
print j8,type(j8)   # [1, 22, 2] <type 'str'>
"""


#json.loads 用于解码json数据,返回python字段的数据类型

jsonData = '{"a":1,"b":2}'
text = json.loads(jsonData)
print text,type(text)   # {u'a': 1, u'b': 2} <type 'dict'>



#存取json数据
#json.dump()函数   json.load()
'''
#dump()函数  存json文件,将python对象存到json格式的文件中
dic_info = {'name':'cai','age':'24'}
filew = open ('test.json','w')
json.dump(dic_info,filew)
filew.close()

#json.load()读取json文件内容

filer = open('test.json','r')
text = json.load(filer)
filer.close()

print text    # {u'age': u'24', u'name': u'cai'}
'''


data = {
    'no' : 1,
    'name' : 'Runoob',
    'url' : 'http://www.baidu.com'
}

#写入json数据
# 打开文件data.json文件,如果没有文件,就创建,有的话直接写入
with open('data.json','wb') as f:
    json.dump(data,f)

#读取数据
with open('data.json','r') as f:
    data = json.load(f)

print data    # {u'url': u'http://www.baidu.com', u'name': u'Runoob', u'no': 1}

猜你喜欢

转载自blog.csdn.net/cai_cai_cai_1992/article/details/82983450