json 通用的数据类型, 所有的语言都认识。json 是字符串。key-value 必须使用双引号
1. loads() 和 dumps() 的使用
- json.loads() 将 json 字符串转换成字典。
- json.dumps() 将字典转换成 json 字符串。
1 s = ‘‘‘{ 2 ????"error_code":0, 3 ????"stu_info":[ 4 ????????{ 5 ????????????"id":100, 6 ????????????"name":"小明" 7 ????????}, 8 ????????{ 9 ????????????"id":202,10 ????????????"name":"小黑"11 ????????}12 ????????]13 }14 ‘‘‘15 # json格式校验网址 www.bejson,com16 import json17 res = json.loads(s) # json 字符串转成字典18 print(res)19 print(type(res))20 21 stus = {‘test1‘:‘123‘, ‘test2‘:‘456‘, ‘中文‘:‘中文test‘}22 res2 = json.dumps(stus, ensure_ascii=False) # 字典转成 json. 如果有中文,设置ensure_ascii=False23 print(res2)24 print(type(res2))25 res3 = json.dumps(stus, indent=4) # indent 设置缩进26 print(res3)
1 # 输出结果:2 {‘error_code‘: 0, ‘stu_info‘: [{‘id‘: 100, ‘name‘: ‘小明‘}, {‘id‘: 202, ‘name‘: ‘小黑‘}]}3 <class ‘dict‘>4 {"test1": "123", "test2": "456"}5 <class ‘str‘>
在处理 MD5 加密的时候经常需要使用 json.dumps() 方法将字典转换成 json 字符串。上面的运行结果可以看到转换成 json 时冒号后面有个空格,这会导致加密结果不一致。所以在转换的时候需要加个参数 separators=(‘,‘,‘:‘),代码如下:
1 res2 = json.dumps(stus, separators=(‘,‘,‘:‘),ensure_ascii=False) # 字典转成 json. 如果有中文,设置ensure_ascii=False2 print(res2)3 4 #输出结果:5 {"test1":"123","test2":"456","中文":"中文test"}
2. json.loads() 、json.load() 的区别
1 # load 和 loads 的区别: 2 # loads 传的是个字符串 3 f = open(‘stus.json‘, encoding=‘utf-8‘) 4 content = f.read() 5 user_dic = json.loads(content) 6 print(user_dic) 7 ?8 # load ?传的是个文件对象 9 f = open(‘stus.json‘, encoding=‘utf-8‘)10 user_dic = json.load(f)11 print(user_dic)
3. json.dumps()、json.dump() 的区别
1 # dump 和 dumps 的区别:2 # 如果要把字典写进文件里,那么使用 dump3 f = open(‘stus2.json‘, encoding=‘utf-8‘)4 json.dump(stus, f, ensure_ascii=False) # 直接把 stus 写进了 stus2.json 文件里
10:处理 json
原文地址:https://www.cnblogs.com/mayytest1202/p/9693730.html