日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
使用Python對復(fù)雜的json進行解析

json是一種輕量級、跨平臺、跨語言的數(shù)據(jù)交換格式; json模塊提供了對json的支持,它既包含了將json字符串恢復(fù)成Python對象的函數(shù),也提供了將Python對象轉(zhuǎn)換成json字符串的函數(shù)

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 數(shù)組或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 數(shù)組中相同的 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]}}

網(wǎng)站欄目:使用Python對復(fù)雜的json進行解析
新聞來源:http://www.dlmjj.cn/article/dhdohip.html