json模块的转义dump 和反转义 loap
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                json模块的转义dump 和反转义 loap
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.                        
                                # json 轉(zhuǎn)義 dump 反轉(zhuǎn)義 load
# json 模塊的限制
# 1.json格式的key必須是字符串?dāng)?shù)據(jù)類型
# 2.json格式中的字符串只能是""
#---------------------------------------------字典------------------------------------------------------
#-----字典中的 k 值-------------如果是數(shù)字為key,那么dump之后回強(qiáng)轉(zhuǎn)成字符串?dāng)?shù)據(jù)類型
# import json
# dic = {1:2,3:4}
# str_dic = json.dumps(dic) # 使用dumps對(duì)定義好的字典進(jìn)行轉(zhuǎn)義
# print(str_dic) # 結(jié)果為 {"1": 2, "3": 4}
#
# new_dic = json.loads(str_dic) # 使用loads 對(duì)之前轉(zhuǎn)義過(guò)的字符串反轉(zhuǎn)義成為之前的數(shù)據(jù)類型--字典
# print(new_dic) #{'1': 2,'3': 4}
#--- dic = {k1:(元組)} 元組會(huì)被強(qiáng)制轉(zhuǎn)換為列表
# import json
# dic ={"k1":"v1","k2":(1,2,3)}
# str_dic = json.dumps(dic) # 將字典轉(zhuǎn)義成為一個(gè)字符串,其中value 如果是元組的話,回別強(qiáng)制轉(zhuǎn)化成為列表
# print(str_dic,type(str_dic)) # 結(jié)果是{"k1": "v1", "k2": [1, 2, 3]} <class 'str'>
# new_dic = json.loads(str_dic) #將之前轉(zhuǎn)化成字符串的字典反轉(zhuǎn)義成為原來(lái)的字典,里面的元組還是回保留成為列表數(shù)據(jù)類型.
# print(new_dic,type(new_dic)) # 結(jié)果是{'k1': 'v1', 'k2': [1, 2, 3]} <class 'dict'>
# ----字典( k 不可以使用元組)
# import json
# dic = {(1,2,3):"v1"} # 字典可以被定義
# str_dic = json.dumps(dic) # 因?yàn)樽值渲械?k 值是一個(gè)元組,不支持,所以程序會(huì)報(bào)錯(cuò).
# print(str_dic)
#-----------------------------------------列表-------------------------------------------------
# ---------將列表轉(zhuǎn)義成字符串寫(xiě)入文件,再讀取文件中的字符串,反轉(zhuǎn)義成為列表打印
# import json
# lst = ["aaa",123,"bbb",12.345]
# with open("lst.txt","w") as f: # 打開(kāi)一個(gè)文件
# json.dump(lst,f) # 將列表lst 轉(zhuǎn)義成為一個(gè)字符串,并且將此字符串寫(xiě)入文件中.
# with open("lst.txt") as f: #打開(kāi)剛剛那個(gè)文件.
# ret = json.load(f) # 將文件中的保存的字符串類型的文件反轉(zhuǎn)義成為之前的列表
# print(ret,type(ret)) # 結(jié)果是 ['aaa', 123, 'bbb', 12.345] <class 'list'>
#------可以多次將列表,字典,dump轉(zhuǎn)義放入到文件,但是不能從文件一次性load 將文件取出來(lái)反轉(zhuǎn)義
# import json
# dic = {"abc":(1,2,3)} # 定義一個(gè)字典
# lst = ["aaa","123","bbb","456"] #定義一個(gè)列表
# with open("json_demo","w") as f: #打開(kāi)文件
# json.dump(lst,f) #將轉(zhuǎn)義后的列表寫(xiě)入到文件中
# json.dump(dic,f) #將轉(zhuǎn)義后的字典寫(xiě)入到文件中
# with open("json_demo") as f: #打開(kāi)文件
# ret = json.loads(f) #將文件中的內(nèi)容進(jìn)行反轉(zhuǎn)義讀出來(lái) ------(不允許將多次寫(xiě)入的內(nèi)容一次性讀出來(lái),程序會(huì)報(bào)錯(cuò))
# print(ret)
# -------------想將多個(gè)類型的數(shù)據(jù)dumps寫(xiě)入文件中,并且loads取出來(lái)(將文件單獨(dú)轉(zhuǎn)義,每一個(gè)文件寫(xiě)一行,取出來(lái)的時(shí)候也是按一行取出來(lái))
# import json
# dic = {"k1":"v1","k2":"v2"} #定義一個(gè)字典
# lst = [1,2,3,4] #定義一個(gè)列表
# with open("json_dome","w") as f: #打開(kāi)文件
# str_dic = json.dumps(dic) #將字典進(jìn)行轉(zhuǎn)義
# str_lst = json.dumps(lst) #將列表進(jìn)行轉(zhuǎn)義
# f.write(str_dic+" ") #將轉(zhuǎn)義后的字典(字符串類型)寫(xiě)入文件中,光標(biāo)跳到下一行開(kāi)頭
# f.write(str_lst+" ") #將轉(zhuǎn)義后的列表(列表類型) 寫(xiě)入文件中 ,重新起一行開(kāi)始寫(xiě)入
# with open("json_dome") as f: #打開(kāi)文件獲取到文件句柄
# for i in f: #分別取出文件中每一行
# ret = json.loads(i) #將每一行進(jìn)行反轉(zhuǎn)義(每一行就是之前的一個(gè)文件)
# print(ret)
#------------ 轉(zhuǎn)義過(guò)程中有中文 ensure_ascii = False
# import json
# dic = {"a":"b","country":"中國(guó)"}
# # ret = json.dumps(dic,ensure_ascii=True) # {"a": "b", "country": "u4e2du56fd"}
# ret = json.dumps(dic,ensure_ascii=False) # {'a': 'b','country': '中國(guó)'}
# print(ret)
# dic_new = json.loads(ret)
# print(dic_new)
#----------寫(xiě)入文件過(guò)程中有中文
# 中文格式的 ensure_ascii = False
# import json
# dic = {'abc':(1,2,3),'country':'中國(guó)'}
# ret = json.dumps(dic,ensure_ascii = False)
# print(ret)
# dic_new = json.loads(ret)
# print(dic_new)
#
# with open('json_demo','w',encoding='utf-8') as f:
# json.dump(dic,f,ensure_ascii=False)
# json的其他參數(shù),是為了用戶看的更方便,但是會(huì)相對(duì)浪費(fèi)存儲(chǔ)空間
# import json
# data = {'username':['李華','二愣子'],'sex':'male','age':16}
# json_dic2 = json.dumps(data,sort_keys=True,indent=4,separators=(',',':'),ensure_ascii=False)
# print(json_dic2)
# set不能被dump/dumps
總結(jié)
以上是生活随笔為你收集整理的json模块的转义dump 和反转义 loap的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
 
                            
                        - 上一篇: Android APP安全评估工具 Dr
- 下一篇: 机器学习之路:python支持向量机回归
