1 json.loads()
將json格式的數據轉化為字典類型
data_json = '{"msg": "登錄成功", "code": "10001", "data": null, "status":1}' data_dict = json.loads(data_json, encoding="utf-8")
這個時候,如果使用 eval(data_json) 將會報錯。
因為這個json格式的數據中,存在python中沒有的數據類型:null。
如果沒有null,eval方法是可以實現將數據轉化為字典類型。
NameError: name 'null' is not defined
所以,python中要將json格式的數據轉化為字典型,就用到:loads。
2 json.load()
從文件中讀取json類型的數據,並轉化為字典類型
data_json = '{"msg": "登錄成功", "code": "10001", "data": null, "status":1}' with open("json_file.txt", mode="r", encoding="utf-8") as file: date_dict = json.load(file)
3 json.dumps()
將Python中特定類型進行字符串化操作,即轉換為json格式的數據
注意:字典、列表等都可以進行字符串話操作,變為json格式。
如果存在中文,不使用【ensure_ascii=False】,寫入文件時,中文會被編碼。
Python中的None對應Json中的null。
one_dict = {"name": "菲菲", "age": 18, "money": None} one_str = str(one_dict) one_json = json.dumps(one_dict) two_json = json.dumps(one_dict, ensure_ascii=False)
one_tuple = ["菲菲", 18, None] one_str = str(one_tuple) one_json = json.dumps(one_tuple) two_json = json.dumps(one_tuple, ensure_ascii=False)
4 json.dump()
將字典類型轉化為json字符串格式,寫入到文件中
one_dict = {"name": "字典型", "age": 18, "money": None} with open("json_file.txt", mode="a",encoding="utf-8") as file: json.dump(one_dict, file, ensure_ascii=False)
one_tuple = ["菲菲", 18, None] with open("json_file.txt", mode="a", encoding="utf-8") as file: json.dump(one_tuple, file, ensure_ascii=False)
看下面示例代碼以及運行結果:
indent可以美化格式。
one_dict = [{"Date": "8月17日", "Location": "圖書館", "Price": 0.00}, {"Date": "8月18日", "Location": "圖書館", "Price": None}] with open("write_json.txt", mode="a", encoding="utf=8") as one_file: json.dump(one_dict, one_file, ensure_ascii=False, indent=2)
總結:
loads 將json格式的數據轉化為dict
dumps 將字典、列表t等類型的數據轉化成json格式
load 讀取json格式文件,並返回dict
dump 將字典、列表等格式的數據轉化為json格式,寫入文件中
試了一下,
load,loads好像是只能轉化成為dict。(反序列化,流——對象)
dump,dumps可以將列表,字典數據轉化為json格式。(序列化,對象——可保存或可傳輸格式)
單詞后面有s,都是對文件操作。