亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我想使用 python 中的特定鍵值將示例 JSON 數據轉換為嵌套 JSON

我想使用 python 中的特定鍵值將示例 JSON 數據轉換為嵌套 JSON

汪汪一只貓 2022-07-19 16:45:13
我有以下 JSON 格式的示例數據:project_cost_details是我查詢后的數據庫結果集。{    "1": {        "amount": 0,        "breakdown": [            {                "amount": 169857,                "id": 4,                "name": "SampleData",                "parent_id": "1"            }          ],         "id": 1,        "name": "ABC PR"    }}這是完整的 json:https ://jsoneditoronline.org/?id=2ce7ab19af6f420397b07b939674f49c預期輸出:https ://jsoneditoronline.org/?id=56a47e6f8e424fe8ac58c5e0732168d7我有這個示例 JSON,它是使用代碼中的循環創建的。但我被困在如何將其轉換為預期的 JSON 格式。我正在獲得順序更改,需要轉換為樹狀或嵌套 JSON 格式。在 Python 中嘗試:project_cost = {}        for cost in project_cost_details:            if cost.get('Parent_Cost_Type_ID'):                project_id = str(cost.get('Project_ID'))                parent_cost_type_id = str(cost.get('Parent_Cost_Type_ID'))                if project_id not in project_cost:                    project_cost[project_id] = {}                if "breakdown" not in project_cost[project_id]:                    project_cost[project_id]["breakdown"] = []                if 'amount' not in project_cost[project_id]:                    project_cost[project_id]['amount'] = 0                project_cost[project_id]['name'] = cost.get('Title')                project_cost[project_id]['id'] = cost.get('Project_ID')                if parent_cost_type_id == cost.get('Cost_Type_ID'):                    project_cost[project_id]['amount'] += int(cost.get('Amount'))                #if parent_cost_type_id is None:                project_cost[project_id]["breakdown"].append(                    {                        'amount': int(cost.get('Amount')),                        'name': cost.get('Name'),                        'parent_id': parent_cost_type_id,                        'id' : cost.get('Cost_Type_ID')                    }                )從這里我得到示例 JSON。如果只輸入此代碼所需的格式,那就太好了。還嘗試了這里提到的這個解決方案:https ://adiyatmubarak.wordpress.com/2015/10/05/group-list-of-dictionary-data-by-particular-key-in-python/
查看完整描述

2 回答

?
米琪卡哇伊

TA貢獻1998條經驗 獲得超6個贊

我得到了將示例 JSON 轉換為預期 JSON 的方法:


data = [

 { "name" : "ABC", "parent":"DEF",  },

 { "name" : "DEF", "parent":"null" },

 { "name" : "new_name", "parent":"ABC" },

 { "name" : "new_name2", "parent":"ABC" },

 { "name" : "Foo", "parent":"DEF"},

 { "name" : "Bar", "parent":"null"},

  { "name" : "Chandani", "parent":"new_name", "relation": "rel", "depth": 3 },

  { "name" : "Chandani333", "parent":"new_name", "relation": "rel", "depth": 3 }

]


result = {x.get("name"):x for x in data}

#print(result)

tree = [];

for a in data:

    #print(a)

    if a.get("parent") in result:

        parent = result[a.get("parent")]

    else:

        parent = "" 

    if parent:

        if "children" not in parent:

            parent["children"] = []

        parent["children"].append(a)


    else:

        tree.append(a)

參考幫助: http: //jsfiddle.net/9FqKS/ 這是我轉換為 Python 的 JavaScript 解決方案


查看完整回答
反對 回復 2022-07-19
?
胡說叔叔

TA貢獻1804條經驗 獲得超8個贊

您似乎想從字典中獲取值列表。

result = [value for key, value in project_cost_details.items()]


查看完整回答
反對 回復 2022-07-19
  • 2 回答
  • 0 關注
  • 94 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號