python:json模块
# json 模块
# json就是一个字符串
#json里面必须双引号
前提:如果使用json操作,必须先到导入json模块(import json)
json.dumps是将一个Python数据类型列表进行json格式的编码解析,
示例如下:
>>> import json #导入python 中的json模块 >>> l = [‘iplaypython’,[1,2,3], {‘name’:’xiaoming’}] #创建一个l列表 >>> encoded_json = json.dumps(l) # 将l列表,进行json格式化编码 >>> print repr(l) >>> print encoded_json #输出结果
这样我们就将一个list列表对象,进行了json格式的编码转换。
在使用json.dumps时要注意一个问题
>>> import json >>> print json.dumps('中国') "\u4e2d\u56fd"
输出的会是'中国' 中的ascii 字符码,而不是真正的中文。这是因为json.dumps 序列化时对中文默认使用的ascii编码.想输出真正的中文需要指定ensure_ascii=False:
>>> import json >>> print json.dumps('中国') "\u4e2d\u56fd" >>> print json.dumps('中国',ensure_ascii=False) "中国"
res=json.dumps(dic,ensure_ascii=False,indent=8) #indent,缩进
json.dumps()函数有多个参数:indent参数用于表示美化格式输出时的缩进占位个数,ensure_ascii参数默认为True,这样utf-8格式的非ASCII编码内容会被翻译成ASCII编码输出,要想得到字符的真实表示,需要将这个参数设置为False。其他参数还有:skipkeys,separators,sort_keys等。
解码python json格式,可以用这个模块的json.loads()函数的解析方法,
示例如下:
>>> decode_json = json.loads(encoded_json) >>> print type(decode_json) #查看一下解码后的对象类型 >>> print decode_json #输出结果
将python json格式解码成Python数据风格
json.dump和json.dumps很不同,json.dump主要用来json文件读写,和json.load函数配合使用。
json.dump(x,f),x是对象,f是一个文件对象,这个方法可以将json字符串写入到文本文件中。
import json data = [{"a":"aaa","b":"bbb","c":[1,2,3,(4,5,6)]},33,'tantengvip',True] data2 = json.dumps(data) print(data2) f = open('./tt.txt','a') json.dump(data2,f)
这样就生成了一个tt.txt文件,保存了json格式的数据。dumps还提供pritty print,格式化的输出。
json.load加载json格式文件 下面是从txt文件中读取了json数据。
f = open('./tt.txt','r') hehe = json.load(f) print(hehe)
总结:
json.dumps : dict转成str json.dump是将python数据保存成json
json.loads:str转成dict json.load是读取json数据