Python 之 json 模块

前言:

json是一种通用的数据类型,任何语言都认识,长得像字典,形式也是k-v { },其实 json 是字符串。字符串不能用key、value来取值,要先转成字典才可以

格式如下:

{
        "error_code": 0,#要使用双引号,如果是单引号则运行时会报错,可以上网做在线json格式校验
        "stu_info": [
                {
                        "id": 0,
                        "name": "a",
                        "sex": "男",
                        "age": 22,
                        "grade": "天蝎座",
                        "gold": 100
                },
                {
                        "id": 1,
                        "name": "b",
                        "sex": "男",
                        "age": 23,
                        "grade": "天蝎座",
                        "gold": 100
                }
        ]
}

json 操作:

json串转成字典

.loads() 和 .load() 方法

区别:loads()传的是字符串,而load()传的是文件对象,使用loads()时需要先读文件再使用,而load()则不用

loads:
import json
f=open('stus.json',encoding='utf-8')
content=f.read()#使用loads()方法,需要先读文件
user_dic=json.loads(content)
print(user_dic)


load:
import json
f=open('stus.json',encoding='utf-8')
user_dic=json.load(f)
print(user_dic)

字典转成 json 串

.dumps() 和 .dump() 方法

区别:.dump()不需要使用.write()方法,只需要写哪个字典、哪个文件即可;而.dumps()需要使用.write()方法写入;如果要把字典写到文件里面的时候,dump()好用;但如果不需要操作文件,或需要把内容存到数据库和Excel,则需要使用dumps()先把字典转成字符串,再写入

dumps:
stus={'xiaojun':'123456','xiaohei':'7890','lrx':'111111'}
res2=json.dumps(stus,indent=8,ensure_ascii=False)
print(res2)
with open('stus.json','w',encoding='utf-8') as f:  #使用.dumps()方法时,要写入
    f.write(res2)



dump:
stus={'xiaojun':'123456','xiaohei':'7890','lrx':'111111'}
f=open('stus2.json','w',encoding='utf-8')
json.dump(stus,f,indent=4,ensure_ascii=False)

dump\dumps参数

.dumps\dump中使用参数indent,为字符串换行+缩进:

res2=json.dumps(stus.indent=4)
print(res2)#打印字符串
#结果为: 
'''
{
    "xiaojun": "123456",
    "xiaohei": "7891",
    "lrx": "hailong",
    "tanailing": "111111"
}
'''

.dumps\dump中使用参数ensure_ascii,为内容输出为中文:

res2=json.dumps(stus,indent=4,ensure_ascii=False)   #为False时内容输出显示正常的中文,而不是转码
print(res2)

### 不管是dump还是load,带s的都是和字符串相关的,不带s的都是和文件相关的。

 

 

 

 

 

 

 

你可能感兴趣的:(python,之,json,模块,Python3)