⑴ Python爬蟲(七)數據處理方法之jsON
JSON 指的是 JavaScript 對象表示法(JavaScript Object Notation),是輕量級的文本數據交換格式,且具有自我描述性,更易理解。
JSON看起來像python類型(列表,字典)的字元串。
在之前的文章中,我們說到了怎麼用response的方法,獲取到網頁正確解碼後的字元串。如果還有不懂的,可以先閱讀 Python爬蟲(三)Requests庫 。接下來以有道翻譯為例子,說說怎麼通過網頁解碼後的字元串,提取到翻譯結果。
再結合上述有道翻譯的例子,得到字典類型的返回結果,並提取出來翻譯結果。
將上述例子的dict_json換成str字元串,再寫入文本中。
執行完上述的程序,會得到一個fanyi.txt的文件,其結果如下:{"type": "ZH_CN2EN", "errorCode": 0, "elapsedTime": 1, "translateResult": [[{"src": "\u4eba\u751f\u82e6\u77ed\uff0c\u6211\u7528python", "tgt": "Life is too short, I use python"}]]}。這樣子的一份文檔,中文部分顯示的是二進制,且格式非常不利於閱讀,這並不是我們想要的結果。好在json.mps()為我們提供的兩個方法,以幫助我們更好閱讀文檔。
1.ensure_ascii,能夠讓中文顯示成中文;
2.indent,能夠讓下一行在第一行的基礎上空格。
其用法如下:
⑵ json鏄浠涔堟牸寮忕殑鏂囦歡
JSON鏄涓縐嶈交閲忕駭鐨勬暟鎹浜ゆ崲鏍煎紡銆
json鏄疛avaScript Object Notation鐨勭畝鍐欙紝緲昏瘧榪囨潵灝辨槸js瀵硅薄綆璋憋紝鏄鐢ㄦ潵瀛樺偍綆鍗曠殑鏁版嵁緇撴瀯鍜屽硅薄鐨勬枃浠訛紝綆鍗曠偣鏉ヨ村氨鏄涓縐嶈交閲忕駭鐨勬暟鎹浜ゆ崲鏍煎紡銆傚畠鍩轟簬ECMAScript錛坵3c鍒跺畾鐨刯s瑙勮寖錛夌殑涓涓瀛愰泦錛岄噰鐢ㄥ畬鍏ㄧ嫭絝嬩簬緙栫▼璇璦鐨勬枃鏈鏍煎紡鏉ュ瓨鍌ㄥ拰琛ㄧず鏁版嵁銆
綆媧佸拰娓呮櫚鐨勫眰嬈$粨鏋勪嬌寰桱SON鎴愪負鐞嗘兂鐨勬暟鎹浜ゆ崲璇璦銆傛槗浜庝漢闃呰誨拰緙栧啓錛屽悓鏃朵篃鏄撲簬鏈哄櫒瑙f瀽鍜岀敓鎴愶紝騫舵湁鏁堝湴鎻愬崌緗戠粶浼犺緭鏁堢巼銆
JSON鏄疍ouglas Crockford鍦2001騫村紑濮嬫帹騫誇嬌鐢ㄧ殑鏁版嵁鏍煎紡錛屽湪2005騫-2006騫存e紡鎴愪負涓繪祦鐨勬暟鎹鏍煎紡錛岄泤鉶庡拰璋鋒瓕灝卞湪閭f椂鍊欏紑濮嬪箍娉涘湴浣跨敤JSON鏍煎紡銆
json鏂囦歡鐨勪綔鐢
1銆佹暟鎹浜ゆ崲錛欽SON鏂囦歡鍙浠ヤ綔涓烘暟鎹浜ゆ崲鐨勪腑闂存牸寮忥紝鐢ㄤ簬鍦ㄤ笉鍚岀殑搴旂敤紼嬪簭銆佸鉤鍙版垨緋葷粺涔嬮棿浼犺緭鏁版嵁銆傜敱浜嶫SON鐨勯氱敤鎬у拰鍙璇繪э紝瀹冩垚涓轟簡涓縐嶅父鐢ㄧ殑鏁版嵁浜ゆ崲鏂瑰紡銆
2銆佹暟鎹瀛樺偍錛欽SON鏂囦歡鍙浠ョ敤浜庡皢鏁版嵁鎸佷箙鍖栧瓨鍌ㄥ埌紓佺洏鎴栨暟鎹搴撲腑銆傝稿氬簲鐢ㄧ▼搴忎嬌鐢↗SON鏍煎紡鏉ュ瓨鍌ㄥ拰璇誨彇閰嶇疆淇℃伅銆佺敤鎴鋒暟鎹銆佹棩蹇楃瓑銆
3銆丄PI閫氫俊錛氳稿歐eb鏈嶅姟鍜孉PI浣跨敤JSON鏍煎紡鏉ヤ紶杈撴暟鎹銆傚㈡埛絝鍙浠ラ氳繃鍙戦佸拰鎺ユ敹JSON鏁版嵁涓庢湇鍔″櫒榪涜岄氫俊錛屽疄鐜版暟鎹鐨勮幏鍙栥佹洿鏂板拰浜や簰銆
4銆侀厤緗鏂囦歡錛欽SON鏂囦歡鍙浠ョ敤浜庡瓨鍌ㄥ簲鐢ㄧ▼搴忕殑閰嶇疆淇℃伅銆傞氳繃璇誨彇JSON閰嶇疆鏂囦歡錛屽簲鐢ㄧ▼搴忓彲浠ュ姩鎬佸湴鍔犺澆鍜屽簲鐢ㄩ厤緗鍙傛暟錛屼嬌寰楅厤緗鏇村姞鐏墊椿鍜屾槗浜庝慨鏀廣