python 中關於json的封裝和解析


1、json在python中的用法

在Python中我們大多數都是用json來進行數據的編碼和解碼

  • json.dumps()  是將 列表,元祖,字典類型或者由前者組合而成的數據類型的數組編碼成json格式的數據,然后存儲到文件中
  • json.loads()   是將json格式的文件解析
  • s_dumps = json.dumps(data_obj, sort_keys=True, indent=4, ensure_ascii=False  其中sort_keys=True表示按鍵排序,indent=4表示以4個空格縮進,ensure_ascii表示是否以ASCII碼編碼
list1=[1,2,3,4] temp=(1,2,3,4) dic={"name":123} #json編碼
res1=json.dumps(list1) res2=json.dumps(temp) res3=json.dumps(dic) #json解析
rst1=json.loads(res1) rst2=json.loads(res2) rst3=json.loads(res3) #當需要將Python中的對象進行json編碼時,需調用對象的__dict__方法
class A(): def __init__(self): self.name="xx" self.age=30 a=A() print(json.dumps(a.__dict__))

''' dump()的第一個參數是要序列化的對象,第二個參數是打開的文件句柄 注意打開文件時加上以UTF-8編碼打開 * 運行此文件之后在統計目錄下會有一個data.json文件,打開之后就可以看到json類型的文件應該是怎樣定義的 ''' with open("data.json", "w", encoding="UTF-8") as f: s_dump = json.dump(data_obj, f, ensure_ascii=False) """ load:從一個打開的文件句柄加載數據 注意打開文件的編碼 """ with open("data.json", "r", encoding="UTF-8") as f_load: r_load = json.load(f_load) print(r_load)

 

2、當把存儲json文件時,希望以中文顯示需要加入 ensure_ascii=False這個條件,同時在寫入文件時要加入encoding="utf-8"

with open("filename.txt","w",encoding="utf-8") as f: content=json.dumps(data,ensure_ascii=False) f.write(content) f.close()

這樣就解決了文件中中文字符的編碼問題


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM