一、簡(jiǎn)介:
????????json (JavaScript Object Notation) 是一種輕量級(jí)的數(shù)據(jù)交換格式。易于人閱讀和編寫,同時(shí)也易于機(jī)器解析和生成(一般用于提升網(wǎng)絡(luò)傳輸速率)
二、序列化與反序列化函數(shù)及實(shí)例
? ? ? ? 所謂序列化,就是python編碼為json類型;反序列化,就是json解碼為python類型。下文將會(huì)詳細(xì)展開Python里這兩種的具體函數(shù):
1、序列化 - python編碼為json類型
(1)json.dumps():把python數(shù)據(jù)類型轉(zhuǎn)換成json字符串
import json
# 把python數(shù)據(jù)類型轉(zhuǎn)換成json字符串
dict_data = {'name': 'saxon', 'age': 18}
print('dict_data', end = ':')
print(dict_data)
print('dict_data type',end = ':')
print(type(dict_data))
json_data = json.dumps(dict_data)
print('json_data', end = ':')
print(json_data)
print('json_data type',end = ':')
print(type(json_data))
輸出:
(2)json.dump():把python數(shù)據(jù)類型轉(zhuǎn)換成json字符串并存儲(chǔ)在文件中
import json
# 把python數(shù)據(jù)類型轉(zhuǎn)換成json字符串并存儲(chǔ)在文件中
dict_data = {'name': 'saxon', 'age': 18}
with open('data/json_data.json', 'w') as f: # ‘w’表示寫入文件,文件不存在則創(chuàng)建,存在則覆蓋
json.dump(dict_data, f)
print("載入文件完成...")
f.close()
輸出:
2、反序列化 - json解碼為python類型
(1)json.loads():解析json數(shù)據(jù),返回python中的數(shù)據(jù)類型
import json
# 解析json數(shù)據(jù),返回python中的數(shù)據(jù)類型
json_data = '{"name": "saxon", "age": 18}'
dict_data = json.loads(json_data)
print('dict_data', end = ':')
print(dict_data)
print('dict_data type',end = ':')
print(type(dict_data))
?輸出:
(2)json.load():打開json文件,解析json數(shù)據(jù),返回python中的數(shù)據(jù)類型
import json
# 打開json文件,解析json數(shù)據(jù),返回python中的數(shù)據(jù)類型
with open('data/json_data.json','r') as f:
dict_data = json.load(f)
print("解析文件完成...")
print('dict_data', end = ':')
print(dict_data)
print('dict_data type',end = ':')
print(type(dict_data))
f.close()
輸出:
三、格式化輸出Python數(shù)據(jù)類型到JSON文件
????????我們常用json文件來進(jìn)行大規(guī)模的數(shù)據(jù)存儲(chǔ)和處理,故良好的縮進(jìn)格式會(huì)提升閱讀效率,格式化輸出的代碼如下:
import json
# 格式化輸出python數(shù)據(jù)類型到j(luò)son文件
dict_data = {'name': 'saxon', 'age': 18, 'hobby': ['basketball', 'football']}
with open('data/json_data.json', 'w') as f:
# f.write(json.dumps(dict_data, indent=4, ensure_ascii=False))
json.dump(dict_data, f, indent=4, ensure_ascii=False)
print("格式化輸出完成...")
f.close()
????????其中,indent=4設(shè)置json文件格式的縮進(jìn)為4個(gè)空格,增加格式美觀度;ensure_ascii=False指定不對(duì)非ASCII字符進(jìn)行編碼,直接輸出中文至文件。
輸出:?
四、Python與JSON的數(shù)據(jù)類型轉(zhuǎn)換對(duì)應(yīng)表
1、python類型編碼為json類型轉(zhuǎn)換對(duì)應(yīng)表
Python |
JSON |
---|---|
dict |
object |
list, tuple |
array |
str |
string |
int, float, int- & float-derived Enums |
number |
True |
true |
False |
false |
None文章來源地址http://www.zghlxwxcb.cn/news/detail-724545.html |
null文章來源:http://www.zghlxwxcb.cn/news/detail-724545.html |
2、json類型解碼為python類型轉(zhuǎn)換對(duì)應(yīng)表
JSON |
Python |
---|---|
object |
dict |
array |
list |
string |
str |
number (int) |
int |
number (real) |
float |
true |
True |
false |
False |
null |
None |
到了這里,關(guān)于Python如何處理JSON數(shù)據(jù),保姆級(jí)教程,小白也能玩轉(zhuǎn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!