python(6)——处理json

  • json是通用的数据类型,所有语言都认识 (接口的返回值一般都是json字符串)
  • k-v {} json中的key value必须用双引号包起来 校验json格式是否正确 www.bjson.com
  • json是字符串

json串转成字典:json.loads()

 1 import json
 2 s='''
 3 {
 4         "error_code": 0,
 5         "stu_info": [
 6                 {
 7                         "id": 309,
 8                         "name": "小白",
 9                         "sex": "男",
10                         "age": 28,
11                         "addr": "河南省济源市北海大道32号",
12                         "grade": "天蝎座",
13                         "phone": "18512572946",
14                         "gold": 100
15                 },
16                 {
17                         "id": 310,
18                         "name": "小白",
19                         "sex": "男",
20                         "age": 28,
21                         "addr": "河南省济源市北海大道32号",
22                         "grade": "天蝎座",
23                         "phone": "18516572946",
24                         "gold": 100
25                 }
26         ]
27 }
28 '''
29 res=json.loads(s)  # 将json串转换成字典
30 print(res)
31 print(type(res))
32 print(res.keys()) 

result:

1 {'stu_info': [{'sex': '', 'phone': '18512572946', 'id': 309, 'grade': '天蝎座', 'name': '小白', 'gold': 100, 'age': 28, 'addr': '河南省济源市北海大道32号'}, {'sex': '', 'phone': '18516572946', 'id': 310, 'grade': '天蝎座', 'name': '小白', 'gold': 100, 'age': 28, 'addr': '河南省济源市北海大道32号'}], 'error_code': 0}
2 <class 'dict'>
3 dict_keys(['stu_info', 'error_code'])

json.loads()和json.load()区别

1 f=open('stus.json',encoding='utf-8')
2 user_dic=json.loads(f.read()) #传入字符串
3 print(user_dic)
4 
5 f=open('stus.json',encoding='utf-8')
6 user_dic=json.load(f)  #直接传入文件对象
7 print(user_dic)

字典转成json串:json.dumps()

 1 import json
 2 stu={'小小':'123456','小黑':'23456',"小臂":'45655','ll':'455756454'}
 3 res2=json.dumps(stu,indent=8,ensure_ascii=False)  #indent控制缩进  ensure_ascii 正常显示中文
 4 print(type(res2))
 5 print(res2)
 6 with open('stus.json','w',encoding='utf-8') as f:
 7  f.write(res2)
 8 
 9 #dump()  如果要把字典写入文件中,用dump比dumps方便      dump()和load()都是和文件相关的
10  json.dump(stu, f, indent=4, ensure_ascii=False) #dump直接将字典写到文件中,不需要再写一次write()

result:

<class 'str'>
{
        "ll": "455756454",
        "小臂": "45655",
        "小黑": "23456",
        "小小": "123456"
}

猜你喜欢

转载自www.cnblogs.com/HathawayLee/p/9573799.html