Python之json使⽤⼀、概念
json是⼀种通⽤的数据类型,任何语⾔都认识
接⼝返回的数据类型都是json
长得像字典,形式也是k-v { }
其实json是字符串
字符串不能⽤key、value来取值,要先转成字典才可以
格式如下:
{
"error_code": 0,#要使⽤双引号,如果是单引号则运⾏时会报错,可以上⽹做在线json格式校验
"stu_info": [
{
"id": 309,
"name": "⼩⽩",
"sex": "男",
"age": 28,
"addr": "河南省济源市北海⼤道32号",
"grade": "天蝎座",
"phone": "185********",
"gold": 100
},
{
"id": 310,
"name": "⼩⽩",
"sex": "男",
"age": 28,
"addr": "河南省济源市北海⼤道32号",
"grade": "天蝎座",
"phone": "185********",
python json字符串转数组"gold": 100
}
]
}
⼆、json操作
1、json串转成字典:
(1).loads()⽅法
import json#引⽤json模块
res=json.loads(s)
print(res)#打印字典
print(type(res))#打印res类型
print(res.keys())#打印字典的所有Key
要先读⽂件,然后再转换:
f=open('stus.json',encoding='utf-8')
ad()#使⽤loads()⽅法,需要先读⽂件
user_dic=json.loads(content)
print(user_dic)
(2).load()⽅法
import json
f=open('stus.json',encoding='utf-8')
user_dic=json.load(f)
print(user_dic)
(3)区别
loads()传的是字符串,⽽load()传的是⽂件对象
使⽤loads()时需要先读⽂件再使⽤,⽽load()则不⽤
2、字典转成json串:
⽂件⾥只能写字符串,但可以把字典转成json串,json串是字符串,可以存到⽂件⾥(1).dumps()⽅法
stus={'xiaojun':'123456','xiaohei':'7891','abc':'11111'}
#先把字典转成json
res2=json.dumps(stus)
print(res2)#打印字符串
print(type(res2))#打印res2类型
.dumps()⽅法:把字典转成json串
with open('','w',encoding='utf-8' as f:#打开⽂件
f.write(res2)#在⽂件⾥写⼊转成的json串
使⽤.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)
(2)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)
(3)区别
.dump()不需要使⽤.write()⽅法,只需要写哪个字典、哪个⽂件即可;⽽.dumps()需要使⽤.write()⽅法写⼊
如果要把字典写到⽂件⾥⾯的时候,dump()好⽤;但如果不需要操作⽂件,或需要把内容存到数据库和Excel,则需要使⽤dumps()先把字典转成字符串,再写⼊
(4)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)
3、不管是dump还是load,带s的都是和字符串相关的,不带s的都是和⽂件相关的。
1、pycharm使⽤⼩技巧之分屏:
在python⽂件上右键——Split Vertically,即可达到分屏效果:
⽂件为.json结尾时,输出的内容会有染⾊渲染:
with open('stus.json','w',encoding='utf-8' as f:#打开⽂件
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论