1. 程式人生 > >Python之json使用

Python之json使用

json操作

1、json串轉成字典:

(1).loads()方法

import json#引用json模組
res=json.loads(s)
print(res)#列印字典
print(type(res))#列印res型別
print(res.keys())#列印字典的所有Key
  • 要先讀檔案,然後再轉換:
f=open('stus.json',encoding='utf-8')
content=f.read()#使用loads()方法,需要先讀檔案
user_dic=json.loads(content)
print(user_dic)

(2).load()方法

import json
f=open('stus.json',encoding='utf-8')
user_dic=json.load(f)
print(user_dic)

(3)區別

  • loads()傳的是字串,而load()傳的是檔案物件
  • 使用loads()時需要先讀檔案再使用,而load()則不用

2、字典轉成json串:

  • 檔案裡只能寫字串,但可以把字典轉成json串,json串是字串,可以存到檔案裡

(1).dumps()方法

stus={'xiaojun':'123456','xiaohei':'7891','abc':'11111'}
#先把字典轉成json
res2=json.dumps(stus)
print(res2)#列印字串
print(type(res2))#列印res2型別
  • .dumps()方法:把字典轉成json串
with open('stus.txt','w',encoding='utf-8' as f:#開啟檔案
    f.write(res2)#在檔案裡寫入轉成的json串
  • 使用.dumps()方法前,要先開啟檔案,再寫入:
stus={'xiaojun':'123456','xiaohei':'7890','lrx':'111111'}
res2=json.dumps(stus,indent=8,ensure_ascii=False)
print(res2)
with open('stus.json','w',encoding='utf-8') as f:#使用.dumps()方法時,要寫入
    f.write(res2)

(2)dump()方法

stus={'xiaojun':'123456','xiaohei':'7890','lrx':'111111'}
f=open('stus2.json','w',encoding='utf-8')
json.dump(stus,f,indent=4,ensure_ascii=False)

(3)區別

  • .dump()不需要使用.write()方法,只需要寫哪個字典、哪個檔案即可;而.dumps()需要使用.write()方法寫入
  • 如果要把字典寫到檔案裡面的時候,dump()好用;但如果不需要操作檔案,或需要把內容存到資料庫和Excel,則需要使用dumps()先把字典轉成字串,再寫入

(4)dump\dumps引數

  • .dumps\dump中使用引數indent,為字串換行+縮排:
複製程式碼
res2=json.dumps(stus.indent=4)
print(res2)#列印字串
#結果為: 
'''
{
    "xiaojun": "123456",
    "xiaohei": "7891",
    "lrx": "hailong",
    "tanailing": "111111"
}
'''
複製程式碼
  • .dumps\dump中使用引數ensure_ascii,為內容輸出為中文:
res2=json.dumps(stus,indent=4,ensure_ascii=False)#為False時內容輸出顯示正常的中文,而不是轉碼
print(res2)

3、不管是dump還是load,帶s的都是和字串相關的,不帶s的都是和檔案相關的。