现在很多接口传参和响应都是json串。
json.dumps() python对象转化为json字符串
json.loads() json字符串转化为python对象。[]转变成list,{}转变成dict。
1 python对象转成json
import json #python对象转化成json dictdata = {'title':'python','page':100,'name': 'python development' } print(dictdata) print(type(dictdata)) jsonstr = json.dumps(dictdata) #转化为json print(jsonstr) print(type(jsonstr))
- 转换对应关系 false-False,true-True, object-dict, array - list, null-None
jsonstr = '{"array": [1,2,3], "bool": false, "null": null}' data = json.loads(jsonstr) print(data) data = {'tuple': (1,2,3),'list': [1,2,3], 'bool': True, 'None': None} jsonstr = json.dumps(data) print(jsonstr)
- 排序、缩进格式化显示
jsonstr = json.dumps(dictdata,sort_keys=True) #排序 print(jsonstr) jsonstr = json.dumps(dictdata,indent=4) #缩进显示 print(jsonstr)
- 是否转成ascii
dictdata2 = [{"count":168,"name":"前端开发","title":"前端开发"},{"count":94,"name":"编程","title":"编程"}] print(dictdata2) print(type(dictdata2)) jsonstr2 = json.dumps(dictdata2) #默认转成ascii print(jsonstr2) print(type(jsonstr2)) jsonstr2 = json.dumps(dictdata2,ensure_ascii=False) print(jsonstr2) print(type(jsonstr2))
2 json转成python对象
#json对象转化为python对象 jsonstr = '[{"count": 168, "name": "前端开发", "title": "前端开发"}, {"count": 94, "name": "编程", "title": "编程"}]' data = json.loads(jsonstr) print(data) print(type(data))
3 转成json写入文件; 从文件读json转成python对象
#转化成json写入文件 data = [{'count': 168, 'name': '前端开发', 'title': '前端开发'}, {'count': 94, 'name': '编程', 'title': '编程'}] with open('1.json','w') as f: json.dump(data,f,indent=4,ensure_ascii=False) #从文件读取json转成python对象 with open('1.json','r') as f: data = json.load(f) print(data) print(type(data))