前言:
json是一種通用的數(shù)據(jù)類型,任何語言都認(rèn)識,長得像字典,形式也是k-v { },其實 json 是字符串。字符串不能用key、value來取值,要先轉(zhuǎn)成字典才可以
格式如下:
{
"error_code": 0,#要使用雙引號,如果是單引號則運行時會報錯,可以上網(wǎng)做在線json格式校驗
"stu_info": [
{
"id": 0,
"name": "a",
"sex": "男",
"age": 22,
"grade": "天蝎座",
"gold": 100
},
{
"id": 1,
"name": "b",
"sex": "男",
"age": 23,
"grade": "天蝎座",
"gold": 100
}
]
}
json 操作:
json串轉(zhuǎn)成字典
.loads() 和 .load() 方法
區(qū)別:loads()傳的是字符串,而load()傳的是文件對象,使用loads()時需要先讀文件再使用,而load()則不用
loads:
import json
f=open('stus.json',encoding='utf-8')
content=f.read()#使用loads()方法,需要先讀文件
user_dic=json.loads(content)
print(user_dic)
load:
import json
f=open('stus.json',encoding='utf-8')
user_dic=json.load(f)
print(user_dic)
字典轉(zhuǎn)成 json 串
.dumps() 和 .dump() 方法
區(qū)別:.dump()不需要使用.write()方法,只需要寫哪個字典、哪個文件即可;而.dumps()需要使用.write()方法寫入;如果要把字典寫到文件里面的時候,dump()好用;但如果不需要操作文件,或需要把 內(nèi)容存到數(shù)據(jù)庫和Excel ,則需要使用 dumps() 先把字典轉(zhuǎn)成字符串,再寫入
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)
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)
dump\dumps參數(shù)
.dumps\dump中使用參數(shù)indent,為字符串換行+縮進:
res2=json.dumps(stus.indent=4)
print(res2)#打印字符串
#結(jié)果為:
'''
{
"xiaojun": "123456",
"xiaohei": "7891",
"lrx": "hailong",
"tanailing": "111111"
}
'''
.dumps\dump中使用參數(shù)ensure_ascii,為內(nèi)容輸出為中文:
res2=json.dumps(stus,indent=4,ensure_ascii=False) #為False時內(nèi)容輸出顯示正常的中文,而不是轉(zhuǎn)碼
print(res2)
### 不管是dump還是load,帶s的都是和字符串相關(guān)的,不帶s的都是和文件相關(guān)的。
?
?
?
?
?
?
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
