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()
這樣就解決了文件中中文字符的編碼問題
