導讀 |
JSON(JavaScript Object Notation)是一種輕量級的數據交換格式。
它基于ECMAScript的一個子集,易于閱讀和編寫。 成都創新互聯公司堅持“要么做到,要么別承諾”的工作理念,服務領域包括:成都網站制作、網站設計、外貿網站建設、企業官網、英文網站、手機端網站、網站推廣等服務,滿足客戶于互聯網時代的溫宿網站設計、移動媒體設計的需求,幫助企業找到有效的互聯網解決方案。努力成為您成熟可靠的網絡建設合作伙伴! Python3 中可以使用json模塊來對JSON數據進行編碼。 |
d1 = [{"id" : 1,"name" : "Number1","age" : 11},{"id" : 2,"name" : "Number2","age" : 22},{"id" : "3","name" : "Number3","age" : 33}] d2 = {"persons" :[{"id" : 1,"name" : "Number1","age" : 11},{"id" : "2","name" : "Number2","age" : 22},{"id" : 3,"name" : "Number3","age" : 33}]} d3 = {"code" : 200, "persons" :[{"id" : 1,"name" : "Number1","age" : 11},{"id" : True,"name" : "Number2","age" : 22},{"id" : 3,"name" : "Number3","age" : 33}]}
## 獲取 json 數組或json 對象的 key 列表
def get_json_keys(json_str,json_keys = []): if isinstance(json_str,list): for json_obj in json_str: for key in json_obj.keys(): if key not in json_keys: json_keys.append(key) elif isinstance(json_str,dict): for key in json_str.keys(): if key not in json_keys: json_keys.append(key) return json_keys
## 將json 數組中相同的 key - value值進行合并
def get_key_values(json_str,json_keys): target_json = {} for key in json_keys: key_values = [] for json_obj in json_str: if isinstance(json_obj,dict): key_values.append(json_obj[key]) target_json[key] = key_values return target_json
## 主方法
def analyse_json(json_str): target_json = {} json_keys = [] if isinstance(json_str,list): json_keys = get_json_keys(json_str,json_keys) target_json = get_key_values(json_str,json_keys) elif isinstance(json_str,dict): json_keys = get_json_keys(json_str,json_keys) for key in json_keys: if not isinstance(json_str[key],list) and not isinstance(json_str[key],dict): target_json[key] = json_str[key] else: target_json[key] = analyse_json(json_str[key]) return target_json print(analyse_json(d1)) print(analyse_json(d2)) print(analyse_json(d3))
輸出:
{'id': [1, 2, '3'], 'name': ['Number1', 'Number2', 'Number3'], 'age': [11, 22, 33]} {'persons': {'id': [1, '2', 3], 'name': ['Number1', 'Number2', 'Number3'], 'age': [11, 22, 33]}} {'code': 200, 'persons': {'id': [1, True, 3], 'name': ['Number1', 'Number2', 'Number3'], 'age': [11, 22, 33]}}
本文原創地址: https://www.linuxprobe.com/python3-parse-complex.html
新聞標題:Python3解析復雜結構的json
網頁URL:http://newbst.com/article10/ghojdo.html
成都網站建設公司_創新互聯,為您提供軟件開發、品牌網站制作、網站建設、品牌網站設計、靜態網站、外貿建站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯