本文實例講述了Python使用內置json模塊解析json格式數據的方法。分享給大家供大家參考,具體如下:
Python中解析json字符串非常簡單,直接用內置的json模塊就可以,不需要安裝額外的模塊。
一、json字符串轉為python值
json字符串:
 代碼如下:{"userAccount":"54321","date":"2016-12-06 10:26:17","ClickTime": 1480991177,"jsonInfo":{"lon":121.5612,"lat":31.1832,"isGps":1,"netType":"WIFI","addr":"浦東新區長江南路1099弄56號"}}
格式化一下:
{  "userAccount": "54321",  "date": "2016-12-06 10:26:17",  "ClickTime": 1480991177,  "jsonInfo": {    "lon": 121.5612,    "lat": 31.1832,    "isGps": 1,    "netType": "WIFI",    "addr": "浦東新區長江南路1099弄56號"  }}# -*- coding:gbk -*-import jsonsJOSN = '{"userAccount":"54321","date":"2016-12-06 10:26:17","ClickTime": 1480991177,"jsonInfo":{"lon":121.5612,"lat":31.1832,"isGps":1,"netType":"WIFI","addr":"浦東新區長江南路1099弄56號"}}'sValue = json.loads(sJOSN)print(sValue)輸出:
============= RESTART: C:/Users/Administrator/Desktop/Python.py ============={'jsonInfo': {'lat': 31.1832, 'isGps': 1, 'netType': 'WIFI', 'addr': '浦東新區長江南路1099弄56號', 'lon': 121.5612}, 'ClickTime': 1480991177, 'userAccount': '54321', 'date': '2016-12-06 10:26:17'}>>>對比一下原始字符串和輸出的,發現前后順序變了,因為在轉化為python的字典數據的過程中,順序會變化。
另外,json中的雙引號都改成了單引號。
二、python值轉為json字符串
# -*- coding:gbk -*-import jsonsDict={'jsonInfo': {'netType': 'WIFI', 'lat': 31.1832, 'addr': '浦東新區長江南路1099弄56號', 'isGps': 1, 'lon': 121.5612}, 'userAccount': '54321', 'ClickTime': 1480991177, 'date': '2016-12-06 10:26:17'}sValue = json.dumps(sDict)print(sValue)輸出:
 
又從字典數據變為了json字符串。
三、解析json中的數據
# -*- coding:gbk -*-import jsonsJOSN = '{"userAccount":"54321","date":"2016-12-06 10:26:17","ClickTime": 1480991177,"jsonInfo":{"lon":121.5612,"lat":31.1832,"isGps":1,"netType":"WIFI","addr":"浦東新區長江南路1099弄56號"}}'sValue = json.loads(sJOSN)for k in sValue.keys():  if str(type(sValue[k]))!="<class 'dict'>":    print(k+':'+ str(sValue[k]))  else:    print(str(k)+':')    for k1 in sValue[k].keys():      print(' '*3 + k1 +':'+str(sValue[k][k1]))輸出:
========= RESTART: C:/Users/Administrator/Desktop/Python json轉為字典.py =========userAccount:54321date:2016-12-06 10:26:17jsonInfo: netType:WIFI addr:浦東新區長江南路1099弄56號 lon:121.5612 lat:31.1832 isGps:1ClickTime:1480991177
新聞熱點
疑難解答