1. 程式人生 > >python(6)——處理json

python(6)——處理json

span ascii 語言 str imp 中文 河南省 utf 控制

  • 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"
}

python(6)——處理json