概念
- json是一种通用的数据类型
- 一般情况下接口返回的数据类型都是json
- 长得像字典,形式也是k-v{ }
- 其实json是字符串
- 字符串不能用key、value来取值,所以要先转换为字典才可以
json操作
json转换成字典:
loads方法
1
2
3
4
5
|
import json res = json.loads(s) # s是json类型的字符串 print (res) # 打印字典 print ( type (res)) # 打印res类型 print (res.keys()) # 打印字典的所有key |
文件操作
1
2
3
4
|
f = open ( 'stus.json' ,encoding = 'utf-8' ) content = f.read() # 使用loads()方法需要先读文件 user_dic = json.loads(cotent) print (user_dic) |
load方法
1
2
3
4
|
import json f = open ( 'stus.json' ,encoding = "utf-8" ) user_dic = json.load(f) print (user_dic) |
区别:
loads() 传的是字符串,而load()传的是文件对象
使用loads()时需要先读取文件在使用,而load()则不用
字典转成json串
文件里只能写字符串,但是可以把字典转成json串,json串是字符串,可以写到文件里
drums方法
1
2
3
4
|
stus = { 'xiaojun' : '123456' , 'xiaohei' : '7891' , 'abc' : '11111' } res2 = json.dumps(stus) # 先把字典转成json print (res2) print ( type (res2)) |
文件操作
1
2
|
with open ( 'stus.txt' , 'w' ,encoding = 'utf-8' ) as f: # 打开文件 f.write(res2) # 在文件里写入转成的json串 |
dump()方法
1
2
3
|
stus = { 'xiaojun' : '123456' , 'xiaohei' : '7890' , 'lrx' : '111111' } file = open ( 'stus2.json' , 'w' ,encoding = 'utf-8' ) json.dump(stus, file ,indent,ensure_ascii = False ) # 直接写入文件中,ensure_ascii为False时内容输出显示正常的中文,而不是转码 |
参数:
- indent:字符串转行 + 缩进
- ensure_ascii:是否转为ASCII码
区别:
dump()不需要使用.write()方法,只需要写那个字典,那个文件即可;而.dumps()需要使用.write()方法写入.如果把字典写到文件里面的时候,dump()好用;但是如果不需要操作文件,或需要把内容存储到数据库何excel,则需要使用dumps()先把字典转换成字符串,再写入
总结
不管是dump还是load,带s的都是和字符串相关的,不带s的都是和文件相关的
到此这篇关于Python中json库的操作指南的文章就介绍到这了,更多相关Python中json库内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://blog.csdn.net/qq_62789540/article/details/122482706