⑴ 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閰嶇疆鏂囦欢锛屽簲鐢ㄧ▼搴忓彲浠ュ姩鎬佸湴鍔犺浇鍜屽簲鐢ㄩ厤缃鍙傛暟锛屼娇寰楅厤缃鏇村姞鐏垫椿鍜屾槗浜庝慨鏀广