json.dump()、json.dumps()、json.load()、json.loads()

发布时间 2023-03-27 15:30:27作者: aha_baby

一. 函数用法

    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_))