Json模块dumps、loads、dump、load函数介绍

1、json.dumps()

         json.dumps()实现python类型转化为json字符串,返回一个str对象 ,把一个Python对象编码转换成Json字符串 ,如果直接将dict类型的数据写入json文件中会发生报错

从python原始类型向json类型的转化对照如下:

import json
import chardet 
listStr = [1, 2, 3, 4] 
tupleStr = (1, 2, 3, 4) 
dictStr = {"city": "北京", "name": "大猫"} 
json.dumps(listStr) # '[1, 2, 3, 4]' 
json.dumps(tupleStr) # '[1, 2, 3, 4]' 
# 注意:json.dumps() 处理中文时默认使用的ascii编码,会导致中文无法正常显示 
print json.dumps(dictStr) 
# 记住:处理中文时,添加参数 ensure_ascii=False 来禁用ascii编码 
print json.dumps(dictStr, ensure_ascii=False) 
# {"city": "北京", "name": "大刘"} 
json.dumps(res, indent=2, sort_keys=True)格式化输出并按键排序

2、json.loads()

     json.loads()把Json格式字符串解码转换成Python对象

从json到python的类型转化对照如下:

import json

name_emb = {'a':'1111','b':'2222','c':'3333','d':'4444'} 

jsDumps = json.dumps(name_emb) 

jsLoads = json.loads(jsDumps) 

print(name_emb)
print(jsDumps)
print(jsLoads)

print(type(name_emb))
print(type(jsDumps))
print(type(jsLoads))     

          运行结果如下:

         'a'变成了u'a'是因为发生了类型转换,str会转换成unicode

 3、json.dump()

         json.dump()用于将Python内置类型序列化为json对象后写入文件 。下面两种方法都可以将数据写入json文件

import json 

name_emb = {'a':'1111','b':'2222','c':'3333','d':'4444'} 

emb_filename = ('/home/cqh/faceData/emb_json.json') 

# solution 1
jsObj = json.dumps(name_emb) 
with open(emb_filename, "w") as f: 
f.write(jsObj) 
f.close() 

# solution 2 
json.dump(name_emb, open(emb_filename, "w"))

          运行结果如下:

 

  4、json.load()

          json.load()用于从json文件中读取数据。

import json 

emb_filename = ('/home/cqh/faceData/emb_json.json') 

jsObj = json.load(open(emb_filename)) 

print(jsObj)
print(type(jsObj))

for key in jsObj.keys():
print('key: %s value: %s' % (key,jsObj.get(key)))

 运行结果如下:

posted @ 2018-10-26 10:24  Silence&QH  阅读(1214)  评论(0编辑  收藏  举报