一. 函数用法
json.dumps():将Python数据结构转换为JSON,即dict类型转成str类型。
json.dump():编码,用于将dict类型的数据转成str类型,并写入到json文件。
json.loads():将JSON编码的字符串转换回Python数据结构,即str类型转换成dict类型。
json.load():解码,用于从json文件中读取数据。
json.dump()和json.dumps()的区别
json.dumps()是把python对象转换成json对象的一个过程,生成的是字符串。
json.dump()是把python对象转换成json对象生成一个fp的文件流,和文件相关。
dump的一些参数(重点)
dump(obj, fp,
skipkeys=False,
ensure_ascii=True,
check_circular=True,
allow_nan=True,
cls=None,
indent=None,
separators=None,
default=None,
sort_keys=False, **kw)
obj:就是你要转化成json的对象。
其实这个和json.dumps()就是多了一个fp的文件参数,一个是关于文件之间的储存,一个是字符串之间的转换。
ensure_ascii=True:默认输出ASCLL码,如果把这个该成False,就可以输出中文。
二. 执行代码
2.1 json.dumps()
有时保存下来的中文数据打开后发现变成ASCII码,这是需要将ensure_ascii参数设置成False
import json
data = {
'name' : 'name',
'age' : 20,
}
json_str = json.dumps(data,ensure_ascii=False)
主要参数 作用 类型
obj 就是你要转化成json的对象
sort_keys 编码器按照字典排序(a到z)输出 Bool
indent 根据数据格式缩进显示 Int
separators 设置分隔符 str
skipkeys 检查python的基本类型 Bool
ensure_ascii 输出是否ASCLL码 Bool
check_circular 容器类型的循环引用检查 Bool
2.2 json.dump()
import json
data = {
'name':'name',
'age':20,
}
#讲python编码成json放在那个文件里
filename = 'a.txt'
with open (filename,'w') as f:
json.dump(data ,f)
2.3 json.loads()
import json
#用dumps将python编码成json字符串
data = json.dumps(data)
#用loads将json编码成python
print(json.loads(data))
2.4 json.load()
import json
data = {
'name':'name',
'age':20
}
filename = 'a.txt'
with open (filename,'w') as f:
json.dump(data,f)
with open (filename) as f_:
print(json.load(f_))