json
JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式,易于人閱讀和編寫。
json是我們在制作爬蟲時非常常見的網絡對象,本文就列舉python對于json的基本操作。
json函數
使用json函數首先要導入 json 庫? ?即 import json
主要使用以下兩個函數:
- json.dumps 將 Python 對象編碼成 JSON 字符串
- json.loads ??將已編碼的 JSON 字符串解碼為 Python 對象
?
json.dumps
json.dumps 用于將 Python 對象編碼成 JSON 字符串。
語法:
json.dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, encoding= " utf-8 " ,
default=None, sort_keys=False, **kw)
實例:
import json data = [{ ' A ' :1, ' B ' :2, ' C ' :3 }] datajson = json.dumps(data) print (datajson)
輸出:
[{ " A " : 1, " B " : 2, " C " : 3}]
常用參數詳解
1)skipkeys參數,在編碼成json過程中,dict對象的key只可以是string對象,如果是其他類型,那么在編碼過程中就會拋出ValueError的異常。skipkeys可以跳過那些非string對象的處理,只處理正確的編碼。
2)輸出真正的中文需要指定ensure_ascii=False,默認配置使用的ascii編碼,所以默認只會輸出ASCII字符。
3)indent參數根據數據格式縮進顯示,讀起來更加清晰, indent的值,代表縮進空格式
import json data = [{ ' A ' :1, ' B ' :2, ' C ' :3 }] datajson = json.dumps(data) print (datajson) datajson2 =json.dumps(data,indent=4 ) print (datajson2)
輸出:
[{ " A " : 1, " B " : 2, " C " : 3 }] [ { " A " : 1 , " B " : 2 , " C " : 3 } ]
4)separators參數的作用是去掉‘,’ ‘:’后面的空格,在傳輸數據的過程中,越精簡越好,冗余的東西全部去掉。
import json data = [{ ' A ' :1, ' B ' :2, ' C ' :3 }] datajson = json.dumps(data) print (datajson) datajson2 =json.dumps(data,separators=( ' , ' , ' : ' )) print (datajson2)
輸出:
[{ " A " : 1, " B " : 2, " C " : 3 }] [{ " A " :1, " B " :2, " C " :3}]
5)sort_keys是告訴編碼器按照字典key排序(a到z)輸出。
import json data = [{ ' A ' :1, ' D ' :2, ' C ' :3 }] datajson = json.dumps(data) print (datajson) datajson2 =json.dumps(data,sort_keys= True) print (datajson2)
輸出:
[{ " A " : 1, " D " : 2, " C " : 3 }] [{ " A " : 1, " C " : 3, " D " : 2}]
python 原始類型向 json 類型的轉化對照表:
Python | JSON |
---|---|
dict | object |
list, tuple | array |
str, unicode | string |
int, long, float | number |
True | true |
False | false |
None | null |
?
?
json.loads
json.loads 用于解碼 JSON 數據。該函數返回 Python 字段的數據類型。
import json jsonData = ' {"a":1,"b":2,"c":3,"d":4,"e":5} ' print (json.loads(jsonData))
輸出:
{ ' a ' : 1, ' b ' : 2, ' c ' : 3, ' d ' : 4, ' e ' : 5}
以下代碼表示存儲json文件以及讀取json文件
import json data = [{ ' A ' :1, ' D ' :2, ' C ' :3},{ ' a ' :1, ' b ' :2, ' c ' :3 }] with open( ' test.json ' , ' w ' ) as jsfile: jsfile.write(json.dumps(data)) with open( ' test.json ' , ' r ' ) as jsfile: print (json.loads(jsfile.read()))
json 類型轉換到 python 的類型對照表:
JSON | Python |
---|---|
object | dict |
array | list |
string | unicode |
number (int) | int, long |
number (real) | float |
true | True |
false | False |
null | None |
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
