1、json串
在将接口的时候,有说到json串,接口返回的格式就是json格式
{
"error_code": 0,
"stu_info": [
{
"id": 309,
"name": "小白",
"sex": "男",
"age": 28,
"addr": "河南省济源市北海大道32号",
"grade": "天蝎座",
"phone": "18512572946",
"gold": 100
},
{
"id": 310,
"name": "小白",
"sex": "男",
"age": 28,
"addr": "河南省济源市北海大道32号",
"grade": "天蝎座",
"phone": "18516572946",
"gold": 100
}
]
}
#这是接口返回的数据,是k-v格式,字典也是k-v格式,这两者之间是不是能够转换?
2、json串转换成字典
str='''{"user":123,"yang":987}''' #一个json格式的字符串 json串是双引号
import json
res=json.loads(str) #json字符串转换成字典
print(res) #{'user': 123, 'yang': 987}结果就是字典,字典是单引号
3、字典转换成json串
dic={'user':123,'dan':000}
import json
str2=json.dumps(dic) #把字典转换成json字符串
print(str2) #dic={'user':123,'dan':000}运行结果
stus = {'xiaojun':'123456','xiaohei':'7891','tanailing':'11111'
,'海龙':'111'}
res2=json.dumps(stus,indent=4,ensure_ascii=False)
#把字典stus转换成json串 ensure_ascii=False显示中文 indent=4缩进4格
with open('stus.json','w',encoding='utf-8') as f:
f.write(res2)
f = open('stus2.json','w',encoding='utf-8')
json.dump(stus,f,indent=4,ensure_ascii=False)
#dump直接将文件转成文件转换城json串
#运行代码,在stus.json里可以看到是json串
#总结,在转换成字符串时,用dumps是传字符串,dump是直接转字符串所在的文件
4、把json类型文件转换成字典
f = open('stus.json', encoding='utf-8')
content = f.read() #文件转换成字符串
user_dic = json.loads(content) #loads传的是字符串
print(user_dic) #json串转换成字典
#更适合的一种方法
f = open('stus.json',encoding='utf-8')
user_dic = json.load(f) #load是传文件,将一个文件自动转换成字典
print(user_dic)